zoukankan      html  css  js  c++  java
  • ADSL路由切换IP

    目前大部分家庭的上网方式都是基于PPPoE协议的,它是动态分配IP地址,以弥补IPv4地址短缺的问题(好期待IPv6啊,到时候把我家的每根筷子上都分配一个IP)。由于有时候需要切换IP地址,但是到路由的设置界面里切换比较麻烦,因此自己做了个小软件,这样就方便多了。我的路由是D-Link 504,大家根据自己的情况改动一下地址。

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.IO;
    
    namespace ChangeIP
    {
        class Program
        {
            static void Main(string[] args)
            {
    			//获取当前IP
                string result = GetHttpWeb("http://192.168.0.1/info.htm");
                int start = result.IndexOf("wanIP");
                int end = result.IndexOf("subMask");
                result = result.Substring(start, end - start);
                Console.Write(result);
    			
    			//通过路由切换IP
                GetHttpWeb("http://192.168.0.1/do_cmd.htm?CMD=WAN_CON&GO=info.htm&action=4");
    
    			//显示进度
                char[] progress ={ '|', '/', '-', '\\' };
                for (int i = 0; i < 10; i++)
                {
                    Console.Write("Changing " + progress[i % 4]);
                    Console.Write('\r');
                    System.Threading.Thread.Sleep(500);                
                }
                Console.WriteLine();
    
    			//显示新的IP
                result = GetHttpWeb("http://192.168.0.1/info.htm");
                start = result.IndexOf("wanIP");
                end = result.IndexOf("subMask");
                result = result.Substring(start, end - start);
                Console.Write(result);
    
                Console.ReadKey(true);
            }
    
    		
    		//读取网页
            public static string GetHttpWeb(string uri)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
                request.Credentials = new NetworkCredential("admin", "");//路由的用户名和密码
                request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";
                // Get the response.
                HttpWebResponse response;
                try
                {
                    response = (HttpWebResponse)request.GetResponse();
                }
                catch (Exception)
                {
                    throw;
                }
                // Get the stream containing content returned by the server.
                Stream dataStream = response.GetResponseStream();
                // Open the stream using a StreamReader for easy access.
                StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("GB2312"));
                // Read the content.
                string rsp = reader.ReadToEnd();
                // Cleanup the streams and the response.
                reader.Close();
                dataStream.Close();
                response.Close();
                request.Abort();
                return rsp;
            }
        }
    }
    
    
  • 相关阅读:
    Android的数据存储
    Servlet第一天
    JavaScript高级程序设计读书笔记(3)
    Interesting Papers on Face Recognition
    Researchers Study Ear Biometrics
    IIS 发生意外错误 0x8ffe2740
    Father of fractal geometry, Benoit Mandelbrot has passed away
    Computer vision scientist David Mumford wins National Medal of Science
    Pattern Recognition Review Papers
    盒模型bug的解决方法
  • 原文地址:https://www.cnblogs.com/eshizhan/p/1750646.html
Copyright © 2011-2022 走看看