2013-03-14 57 views
1

我想通過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

回答

0

我知道這個帖子是舊的,但我相信你有這個問題,因爲你試圖設置多個適配器的IP到準確相同的IP。

+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – djv 2014-11-26 15:25:01

+0

我最近和惡魔獵手有同樣的問題,那是因爲我無意中嘗試將所有適配器設置爲完全相同的IP。 我只是想幫助! – 2014-11-29 19:46:06