我知道这不是你想要的你可能会暴力破解网络适配器。重新启用后,它将允许您的防火墙规则生效
基本上,没有适配器不能上网
Disable network adapter without WMI
Netsh
Process.Start("cmd.exe","/c netsh interface set interface 'Local Area Connection' DISABLED")
Disable/enable network adapter using WMI
获取网络广告商
public static List<NetworkAdapter> GetAllNetworkAdapter()
{
List<NetworkAdapter> allNetworkAdapter = new List<NetworkAdapter>();
// Manufacturer <> 'Microsoft'to get all none virtual devices.
// Because the AdapterType property will be null if the NetworkAdapter is
// disabled, so we do not use NetworkAdapter = 'Ethernet 802.3' or
// NetworkAdapter = 'Wireless’
string strWQuery = "SELECT DeviceID, ProductName, "
+ "NetEnabled, NetConnectionStatus "
+ "FROM Win32_NetworkAdapter "
+ "WHERE Manufacturer <> 'Microsoft'";
ManagementObjectCollection networkAdapters = WMIOperation.WMIQuery(strWQuery);
foreach (ManagementObject moNetworkAdapter in networkAdapters)
{
try
{
allNetworkAdapter.Add(new NetworkAdapter(
Convert.ToInt32(moNetworkAdapter["DeviceID"].ToString()),
moNetworkAdapter["ProductName"].ToString(),
(Convert.ToBoolean(moNetworkAdapter["NetEnabled"].ToString()))
? (int)EnumNetEnabledStatus.Enabled
: (int)EnumNetEnabledStatus.Disabled,
Convert.ToInt32(moNetworkAdapter["NetConnectionStatus"].ToString()
)));
}
catch (NullReferenceException)
{
// Ignore some other devices (like the bluetooth), that need user
// interaction to enable or disable.
}
}
return allNetworkAdapter;
}
启用禁用
public int EnableOrDisableNetworkAdapter(string strOperation)
{
int resultEnableDisableNetworkAdapter = (int)EnumEnableDisableResult.Unknow;
ManagementObject crtNetworkAdapter = new ManagementObject();
string strWQuery = string.Format("SELECT DeviceID, ProductName, "
+ "NetEnabled, NetConnectionStatus "
+ "FROM Win32_NetworkAdapter " + "WHERE DeviceID = {0}", DeviceId);
try
{
ManagementObjectCollection networkAdapters =
WMIOperation.WMIQuery(strWQuery);
foreach (ManagementObject networkAdapter in networkAdapters)
{
crtNetworkAdapter = networkAdapter;
}
crtNetworkAdapter.InvokeMethod(strOperation, null);
Thread.Sleep(500);
while (GetNetEnabled() != ((strOperation.Trim() == "Enable")
? (int)EnumNetEnabledStatus.Enabled
: (int)EnumNetEnabledStatus.Disabled))
{
Thread.Sleep(100);
}
resultEnableDisableNetworkAdapter =
(int)EnumEnableDisableResult.Success;
}
catch (NullReferenceException)
{
// If there is a NullReferenceException, the result of the enable or
// disable network adapter operation will be fail
resultEnableDisableNetworkAdapter = (int)EnumEnableDisableResult.Fail;
}
crtNetworkAdapter.Dispose();
return resultEnableDisableNetworkAdapter;
}