如何通过编程使用c#配置多个静态IP?

时间:2017-01-21 05:12:57

标签: c# .net networking configuration wmi

我有一个用C#编写的应用程序,需要能够在Windows中配置网络适配器。我能够配置一个静态IP,但我希望多个静态IP按预期工作

public void setIP(string ip_address, string subnet_mask)
    {
        ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
        ManagementObjectCollection objMOC = objMC.GetInstances();

        foreach (ManagementObject objMO in objMOC)
        {
            if ((bool)objMO["IPEnabled"])
            {
                try
                {
                    ManagementBaseObject setIP;
                    ManagementBaseObject newIP =
                        objMO.GetMethodParameters("EnableStatic");

                    newIP["IPAddress"] = new string[] { ip_address };
                    newIP["SubnetMask"] = new string[] { subnet_mask };

                    setIP = objMO.InvokeMethod("EnableStatic", newIP, null);
                }
                catch (Exception)
                {
                    throw;
                }


            }
        }
    }

这有助于配置一个静态IP。但我想配置多个IP

1 个答案:

答案 0 :(得分:0)

正如您的代码已经显示的那样,EnableStatic方法有两个字符串 array 参数。这允许设置多个IP地址/子网掩码对。 IP阵列的文档说:'列出当前网络适配器的所有静态IP地址'以及子网掩码:'子网掩码,补充IPAddress参数中的值'。所以,编码就像这样:

  newIP["IPAddress"] = new string[]  { "192.168.1.2", "192.168.1.3" };
  newIP["SubnetMask"] = new string[] { "255.255.255.0", "255.255.255.0" };