• 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;
            }
        }
    }
    
    
  • 相关阅读:
    链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的
    无法定位程序输入点 _glutCreateWindowWithExit于动态链接库glut32.dll上
    Error:“应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。”
    虚函数和纯虚函数的区别
    VS2010和matlab2010混合编程中char16_t重定义的问题
    笔记本电脑关闭小键盘(即打字按P出现星号键)
    WIN7系统下U盘安装Ubuntu双系统
    The Basics of 3D Printing in 2015
    3D建模与处理软件简介
    win7-32 系统 + VS2010 配置 glew
  • 原文地址:https://www.cnblogs.com/eshizhan/p/1750646.html
Copyright © 2020-2023  润新知