以编程方式在C#中配置Win 7网络适配器
我想通过c#编程方式在Windows 7中配置所有活动的网络适配器。以编程方式在C#中配置Win 7网络适配器
我曾尝试下面的代码:
string newIPAddress = "100.200.100.11";
string newSubnetMask = "255.255.255.1";
string[] newGateway = { "100.200.100.1" };
ManagementObjectSearcher m = new ManagementObjectSearcher();
m.Query = new ObjectQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True");
foreach (ManagementObject mo in m.Get())
{
try
{
ManagementBaseObject setIP;
ManagementBaseObject newIP = mo.GetMethodParameters("EnableStatic");
newIP["IPAddress"] = new string[] { newIPAddress };
newIP["SubnetMask"] = new string[] { newSubnetMask };
setIP = mo.InvokeMethod("EnableStatic", newIP, null);
mo.InvokeMethod("SetGateways", new object[] { newGateway, new string[] { "1" } });
mo.InvokeMethod("SetDNSServerSearchOrder", new object[] { new string[] { "100.100.100.100" } });
}
catch (Exception)
{
throw;
}
}
,但它只是更新的默认网关和其他人改变不了什么。
我已经使用netsh命令,以及:
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
Console.WriteLine(adapter.Name);
Process p = new Process();
ProcessStartInfo psi = new ProcessStartInfo("netsh", "interface ip set address \"" + adapter.Name + "\" static 192.168.0.10 255.255.255.0 192.168.0.1 ");
psi.UseShellExecute = false;
p.StartInfo = psi;
p.Start();
}
但它为第一个适配器之后,它thows一个错误:
“无法配置DHCP服务的接口可能会断开连接“。
如何在C#中配置所有适配器?
我知道这个帖子是旧的,但我相信你有这个问题,因为你试图设置多个适配器的IP到准确相同的IP。
这不提供问题的答案。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://*.com/help/whats-reputation),你会能够[评论任何帖子](http://*.com/help/privileges/comment)。 – djv 2014-11-26 15:25:01
我最近和恶魔猎手有同样的问题,那是因为我无意中尝试将所有适配器设置为完全相同的IP。 我只是想帮助! – 2014-11-29 19:46:06
在命令行中运行'ipconfig/all',你会看到它确实显示断开的网络适配器,所以它不是真的会引发错误。 – JMK 2013-03-14 12:00:36
感谢您的回复。唯一的变化就是在运行netsh代码之后在启用的适配器中看到“自动获取IP地址”变为“使用下面的IP”而没有IP地址。另外,我想每次创建一个新进程都不是一种有效的方式配置网络适配器。我们可能会结束有很多zoombie进程在运行。 – 2013-03-14 12:22:48