【发布时间】:2015-05-22 17:07:27
【问题描述】:
我正在开发一种需要将 PC IP 地址重置为特定 IP 和子网掩码的工作工具。
我已使用以下代码尝试更改 IP(取自此页面:How can you change Network settings (IP Address, DNS, WINS, Host Name) with code in C#)。
问题是,这段代码没有做任何事情。我的计算机本地连接的 IP 地址没有改变 - 它仍然通过 DHCP 自动设置。
帮助?
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;
}
}
}
}
【问题讨论】:
-
1) setIP 结果返回什么? 2)您是否尝试在管理员权限下运行它?
-
如何将 setIP 转换为可读结果?
-
好的,所以以管理员身份运行就可以了,但我需要能够重置 IP,即使不是以管理员身份运行。有什么想法吗?