程序实现动态改变IP地址

5 篇文章 0 订阅

        由于要在我的实验室和宿舍上网,而我拿的是笔记本,所以用程序实现动态IP地址的更改,当然要从不同的文件中读取不同的配置。方法的实现用于为win2000,xp,server2003等操作系统。

      在CMD下有个命令netsh是非常有用的,键入netsh后打help会看到很多有用的信息。

      netsh>help

      netsh>interface

      netsh>dump

      你将会看到当前的网络配置。

     ok,如果你用

     netsh>dump>exit 或者quit退出

    在cmd下输入管道命令 netsh -c interface dump >c:/1.txt

   则在c:根目录下生成1.txt,里面记载了当前的网络配置。

    在cmd下再输入netsh -f c:/1.txt,又将网络配置信息读入当前网络设置。

    好了,这样就清楚了。

  C#    用System.Diagnostics.Process.Start("cmd.exe -C  ",strCmd);

  java 用Process ld = Runtime.getRuntime().exec(commands);

  windowsAPI用ShellExecute,WInExec,CreateProcess;

  数据库存储过程用xp_cmdshell;:),哈哈,开玩笑

  C里面就用System("Cmd -c ....")

  

本文件是C#代码片断 public Form1() { InitializeComponent(); } int i = 0; int j = 0; string[] proxys; #region 改变代理 [DllImport("wininet.dll", SetLastError = true)] private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); /// public void RefreshIESettings(string strProxy) { const int INTERNET_OPTION_PROXY = 38; const int INTERNET_OPEN_TYPE_PROXY = 3; Struct_INTERNET_PROXY_INFO struct_IPI; // Filling in structure struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY; struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy); struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local"); // Allocating memory IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI)); // Converting structure to IntPtr Marshal.StructureToPtr(struct_IPI, intptrStruct, true); bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI)); } #endregion private void Form1_Load(object sender, EventArgs e) { proxys = File.ReadAllLines("C:/proxy.txt"); } private void timer1_Tick(object sender, EventArgs e) { if (i < proxys.Length) { label2.Text = proxys[i]; label9.Text = i.ToString(); label3.Text = "waiting..."; RefreshIESettings(proxys[i]); webBrowser1.Navigate("http://www.imwq.net"); timer1.Enabled = false; i++; } else { timer1.Enabled = false; button1.Text = "结束"; } } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { label3.Text = "ok..."; timer1.Enabled = true; } private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; } } struct Struct_INTERNET_PROXY_INFO { public int dwAccessType; public IntPtr proxy; public IntPtr proxyBypass; };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值