C# Как получить шлюзы (маршруты) по умолчанию и их метрики от отключенных или отключенных сетевых адаптеров (интерфейсов)? - PullRequest
0 голосов
/ 16 июня 2020

Как получить шлюзы (маршруты) по умолчанию и их метрики от отключенных или отключенных сетевых адаптеров (интерфейсов)?

то же, что и результат с использованием «netsh int ip show address» или «route print» или «netsh interface ip show route», его постоянные маршруты:

также

list gateways

  1. WMI Class Win32_NetworkAdapterConfiguration works only for enabled and connected adapters:

string[] gateways = (string[]) objMO["DefaultIPGateway"]; UInt16[] gatewaysMetrics = (UInt16[]) objMO["GatewayCostMetric"];

  1. Class System. Net .NetworkInformation.NetworkInterface работает для отключенных adatpers, но может получить только IP-адреса Gataways без метрик:

NetworkInterface nic = NetworkInterface.GetAllNetworkInterfaces().Where(e => e.Description == comboBoxInterface.Text).FirstOrDefault(); var nicProperties = nic.GetIPProperties(); var gateways = nicProperties.GatewayAddresses.Select(x => x.Address.ToString()).ToList();

GetIpForwardTable также получает его только для подключенных интерфейсов.

Как получить его для отключенных интерфейсов, как в приведенных выше командах?

Другими способами?

1 Ответ

0 голосов
/ 30 июля 2020

Решено с использованием WMI:

ObjectQuery query = new ObjectQuery("SELECT NextHop, Metric1 FROM Win32_IP4RouteTable WHERE Destination='0.0.0.0' AND Metric1<>0 AND InterfaceIndex=" + selectedNetInterfaceIndex);

, но следующий вопрос, как это сделать с помощью API?

...