以编程方式在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#中配置所有适配器?

+0

在命令行中运行'ipconfig/all',你会看到它确实显示断开的网络适配器,所以它不是真的会引发错误。 – JMK 2013-03-14 12:00:36

+1

感谢您的回复。唯一的变化就是在运行netsh代码之后在启用的适配器中看到“自动获取IP地址”变为“使用下面的IP”而没有IP地址。另外,我想每次创建一个新进程都不是一种有效的方式配置网络适配器。我们可能会结束有很多zoombie进程在运行。 – 2013-03-14 12:22:48

我知道这个帖子是旧的,但我相信你有这个问题,因为你试图设置多个适配器的IP到准确相同的IP。

+0

这不提供问题的答案。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://*.com/help/whats-reputation),你会能够[评论任何帖子](http://*.com/help/privileges/comment)。 – djv 2014-11-26 15:25:01

+0

我最近和恶魔猎手有同样的问题,那是因为我无意中尝试将所有适配器设置为完全相同的IP。 我只是想帮助! – 2014-11-29 19:46:06