C# 释放和续订基于DHCP的IP地址
使用C#如何释放和续订基于DHCP的IP地址 目前,我正在使用process方法使用以下DOS命令:C# 释放和续订基于DHCP的IP地址,c#,network-programming,C#,Network Programming,使用C#如何释放和续订基于DHCP的IP地址 目前,我正在使用process方法使用以下DOS命令: ipconfig /release 及 在C语言中是否有一种更易于管理的方法?您可以使用WMI,但只使用System.Diagnostics.Process 下面是一个WMI解决方案: ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollect
ipconfig /release
及
在C语言中是否有一种更易于管理的方法?您可以使用WMI,但只使用
System.Diagnostics.Process
下面是一个WMI解决方案:
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
//Need to determine which adapter here with some kind of if() statement
objMO.InvokeMethod("ReleaseDHCPLease", null, null);
objMO.InvokeMethod("RenewDHCPLease", null, null);
}
您可以尝试以下方法:
SelectQuery query = new SelectQuery("Win32_NetworkAdapter", "AdapterTypeID=0");
ManagementObjectSearcher search = new ManagementObjectSearcher(query);
foreach (ManagementObject result in search.Get())
{
NetworkAdapter adapter = new NetworkAdapter(result);
adapter.Disable();
}
并不是说您的进程必须具有提升的权限
希望能有所帮助。我认为处理这类事情的通常方法正是你所做的。@mclaassen你好,好的。谢谢你的澄清:)嗨,我现在就来试试。谢谢,我现在就去试试。谢谢不用foreach我能做吗?有没有办法直接调用objMO.InvokeMethod(“ReleaseDHCPLease”,null,null)?例如:
var objMO=newmanagementobject(@“root/cimv2,$”Win32\u NetWorkAdapterConfiguration),null);
SelectQuery query = new SelectQuery("Win32_NetworkAdapter", "AdapterTypeID=0");
ManagementObjectSearcher search = new ManagementObjectSearcher(query);
foreach (ManagementObject result in search.Get())
{
NetworkAdapter adapter = new NetworkAdapter(result);
adapter.Disable();
}