现在的位置: 首页 > 综合 > 正文

C# 更改IP,子网掩码,网关,DNS

2013年01月28日 ⁄ 综合 ⁄ 共 1462字 ⁄ 字号 评论关闭
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 定义IP变量
List<string> ip = new List<string>();
string strIp = mtxtAddress.Text.ToString().Replace(" ", "");
// 判断IP是否为空
if (strIp.Equals("..."))
{
    MessageBox.Show("Ip Address Can Not Empty!");
    return;
}
ip.Add(strIp);
 
//子网掩码,网关,DNS相关变量请自行定义
......
 
// 调用更新IP函数
ChangeIP c = new ChangeIP();
c.SetNetworkAdapterByList(ip, subNetMask, gateway, dns);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public void SetNetworkAdapter(List<string> ipAddr, 
                                  List<string> subnetMask, 
                                  List<string> gateways, 
                                  List<string> dnsServer)
{
    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");
        inPar["IPAddress"] = ipAddr.ToArray();
        inPar["SubnetMask"] = subnetMask.ToArray(); 
        outPar = mo.InvokeMethod("EnableStatic", inPar, null);
 
        //设置网关地址
        inPar = mo.GetMethodParameters("SetGateways");
        inPar["DefaultIPGateway"] = gateways.ToArray();
        outPar = mo.InvokeMethod("SetGateways", inPar, null);
 
        //设置DNS
        inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
        inPar["DNSServerSearchOrder"] = dnsServer.ToArray();
        outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
        break;
    }
}
Win32_NetworkAdapterConfigurationhttp://msdn.microsoft.com/en-us/library/aa394217.aspx
http://www.microsoft.com/china/technet/community/scriptcenter/topics/networking/01_atnc_intro.mspx

抱歉!评论已关闭.