【问题标题】:How to change ip address of adaptor?如何更改适配器的IP地址?
【发布时间】:2015-01-16 15:39:58
【问题描述】:

我想在适配器中设置 IP 地址。我得到了以下代码的几个参考。但执行此操作后,当我检查适配器 ip 地址时,它并没有改变。它总是向我显示旧的 IP 地址。不给出任何错误/异常。 如何更改适配器的IP地址?

参考Dynamic-ip-change-in-c#

/// <summary>
        /// Set's a new IP Address and it's Submask of the local machine
        /// </summary>
        /// <param name="ipAaddress">The IP Address</param>
        /// <param name="subnetMask">The Submask IP Address</param>
        /// <remarks>Requires a reference to the System.Management namespace</remarks>
        public void SetIP(string ipAaddress, string subnetMask)
        {
            ManagementClass managementClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();
            foreach (ManagementObject managementObject in managementObjectCollection)
            {
                if ((bool)managementObject["IPEnabled"])
                {
                    try
                    {       
                        string[] addresses = (string[])managementObject["IPAddress"];
                        //Console.WriteLine(addresses[0]);
                        if (addresses[0] == "xxx.xx.xxx.xx")                                 //xxx.xx.xxx.xx should be some valid ip
                        {
                            ManagementBaseObject managementBaseObjectNew = managementObject.GetMethodParameters("EnableStatic");
                            managementBaseObjectNew["IPAddress"] = new string[] { ipAaddress };
                            managementBaseObjectNew["SubnetMask"] = new string[] { subnetMask };
                            ManagementBaseObject managementBaseObjectSet = managementObject.InvokeMethod("EnableStatic", managementBaseObjectNew, null);
                        }
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }
        }

【问题讨论】:

    标签: c# windows-7 network-programming


    【解决方案1】:

    我知道这是一个迟到的答案,但我遇到了同样的问题并通过以管理员身份运行程序来解决它。我使用了相同的技术 (WMI),但使用了不同的代码,我发布了 here。希望对您有所帮助...

    【讨论】:

      猜你喜欢
      • 2013-05-20
      • 2023-04-08
      • 1970-01-01
      • 2015-10-17
      • 2017-04-02
      • 2022-03-03
      • 1970-01-01
      • 2020-06-12
      相关资源
      最近更新 更多