C#实现一键换IP、重置DNS、网关及掩码的方法
2014-07-26 17:07
716 查看
本文实例实现了C#一键换IP、重置DNS、网关及掩码的功能,具体实现的功能为在程序界面窗口中设置ip地址和子网掩码,设置网关地址,设置DNS,并且在设置过程中程序将判断如果没有启用IP设置的网络设备则跳过,重置DNS为空,并开启DHCP。
主要功能代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Management; namespace changeIP { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { ManagementBaseObject inPar = null; ManagementBaseObject outPar = null; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (!(bool)mo["IPEnabled"]) continue; //设置ip地址和子网掩码 inPar = mo.GetMethodParameters("EnableStatic"); string ip = ""; ip = numericUpDown1.Value.ToString() + "." + numericUpDown2.Value.ToString() + "." + numericUpDown3.Value.ToString() + "." + numericUpDown4.Value.ToString(); inPar["IPAddress"] = new string[] { ip };// 1.备用 2.IP string ym = ""; ym = numericUpDown8.Value.ToString() + "." + numericUpDown7.Value.ToString() + "." + numericUpDown6.Value.ToString() + "." + numericUpDown5.Value.ToString(); inPar["SubnetMask"] = new string[] { ym }; outPar = mo.InvokeMethod("EnableStatic", inPar, null); //设置网关地址 inPar = mo.GetMethodParameters("SetGateways"); string wg = ""; wg = numericUpDown12.Value.ToString() + "." + numericUpDown11.Value.ToString() + "." + numericUpDown10.Value.ToString() + "." + numericUpDown9.Value.ToString(); inPar["DefaultIPGateway"] = new string[] { wg }; // 1.网关;2.备用网关 outPar = mo.InvokeMethod("SetGateways", inPar, null); //设置DNS inPar = mo.GetMethodParameters("SetDNSServerSearchOrder"); string dns1 = numericUpDown16.Value.ToString() + "." + numericUpDown15.Value.ToString() + "." + numericUpDown14.Value.ToString() + "." + numericUpDown13.Value.ToString(); string dns2 = numericUpDown20.Value.ToString() + "." + numericUpDown19.Value.ToString() + "." + numericUpDown18.Value.ToString() + "." + numericUpDown17.Value.ToString(); inPar["DNSServerSearchOrder"] = new string[] { dns1, dns2 }; // 1.DNS 2.备用DNS outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null); break; } } private void button2_Click(object sender, EventArgs e) { ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = wmi.GetInstances(); foreach (ManagementObject mo in moc) { //如果没有启用IP设置的网络设备则跳过 if (!(bool)mo["IPEnabled"]) continue; //重置DNS为空 mo.InvokeMethod("SetDNSServerSearchOrder", null); //开启DHCP mo.InvokeMethod("EnableDHCP", null); } } private void button3_Click(object sender, EventArgs e) { this.Close(); this.Dispose(); } private void Form1_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.F2: button1_Click(sender, e); break; case Keys.F3: button2_Click(sender, e); break; } } } }
您可能感兴趣的文章:
相关文章推荐
- 编写脚本一键修改ip、掩码、网关、dns(win7)
- linux ip 网关 掩码 mac 路由 dns设置方法
- C++实现获取IP、子网掩码、网关、DNS等本机网络参数的方法
- C# 修改IP、网关、DNS
- C#通过WMI修改IP,DNS还有网关!
- C# 修改IP、网关、DNS
- C# 设置本机IP、网关和DNS
- Linux命令行修改IP、网关、DNS的方法
- C#设置本地网络(DNS、网关、子网掩码、IP)
- Linux命令行修改IP、网关、DNS的方法
- [转]Linux命令行修改IP、网关、DNS的方法
- 批处理、VBS实现自动设置IP、默认网关、DNS、WINS、IE代理!(二)
- c# 获取Ip网关方法2
- C#设置本地网络(DNS、网关、子网掩码、IP)
- C# 更改IP,子网掩码,网关,DNS
- Linux命令行修改IP、网关、DNS的方法
- C#设置DNS、网关、子网掩码、IP
- UNIX常用的IP表示掩码方式转换为字符串的程序实现方法
- C#设置本地网络(DNS、网关、子网掩码、IP)