C#实现一键换IP、重置DNS、网关及掩码的方法
本文实例实现了C#一键换IP、重置DNS、网关及掩码的功能,具体实现的功能为在程序界面窗口中设置ip地址和子网掩码,设置网关地址,设置DNS,并且在设置过程中程序将判断如果没有启用IP设置的网络设备则跳过,重置DNS为空,并开启DHCP。
主要功能代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Management;
namespacechangeIP
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
ManagementBaseObjectinPar=null;
ManagementBaseObjectoutPar=null;
ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollectionmoc=mc.GetInstances();
foreach(ManagementObjectmoinmoc)
{
if(!(bool)mo["IPEnabled"])
continue;
//设置ip地址和子网掩码
inPar=mo.GetMethodParameters("EnableStatic");
stringip="";
ip=numericUpDown1.Value.ToString()+"."+numericUpDown2.Value.ToString()+"."+numericUpDown3.Value.ToString()+"."+numericUpDown4.Value.ToString();
inPar["IPAddress"]=newstring[]{ip};//1.备用2.IP
stringym="";
ym=numericUpDown8.Value.ToString()+"."+numericUpDown7.Value.ToString()+"."+numericUpDown6.Value.ToString()+"."+numericUpDown5.Value.ToString();
inPar["SubnetMask"]=newstring[]{ym};
outPar=mo.InvokeMethod("EnableStatic",inPar,null);
//设置网关地址
inPar=mo.GetMethodParameters("SetGateways");
stringwg="";
wg=numericUpDown12.Value.ToString()+"."+numericUpDown11.Value.ToString()+"."+numericUpDown10.Value.ToString()+"."+numericUpDown9.Value.ToString();
inPar["DefaultIPGateway"]=newstring[]{wg};//1.网关;2.备用网关
outPar=mo.InvokeMethod("SetGateways",inPar,null);
//设置DNS
inPar=mo.GetMethodParameters("SetDNSServerSearchOrder");
stringdns1=numericUpDown16.Value.ToString()+"."+numericUpDown15.Value.ToString()+"."+numericUpDown14.Value.ToString()+"."+numericUpDown13.Value.ToString();
stringdns2=numericUpDown20.Value.ToString()+"."+numericUpDown19.Value.ToString()+"."+numericUpDown18.Value.ToString()+"."+numericUpDown17.Value.ToString();
inPar["DNSServerSearchOrder"]=newstring[]{dns1,dns2};//1.DNS2.备用DNS
outPar=mo.InvokeMethod("SetDNSServerSearchOrder",inPar,null);
break;
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
ManagementClasswmi=newManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollectionmoc=wmi.GetInstances();
foreach(ManagementObjectmoinmoc)
{
//如果没有启用IP设置的网络设备则跳过
if(!(bool)mo["IPEnabled"])
continue;
//重置DNS为空
mo.InvokeMethod("SetDNSServerSearchOrder",null);
//开启DHCP
mo.InvokeMethod("EnableDHCP",null);
}
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
this.Dispose();
}
privatevoidForm1_KeyDown(objectsender,KeyEventArgse)
{
switch(e.KeyCode)
{
caseKeys.F2:
button1_Click(sender,e);
break;
caseKeys.F3:
button2_Click(sender,e);
break;
}
}
}
}热门推荐
10 分别发的祝福语简短
11 大外甥高考祝福语简短
12 小学毕业校长简短祝福语
13 搞工程发财祝福语简短
14 冬季祝福语男生文案简短
15 同事生子问候祝福语简短
16 退休文案寄语简短祝福语
17 送给自己的祝福语简短
18 简短祝福语毛笔字