Назад | Перейти на главную страницу

Windows: получить номер интерфейса сетевой карты

У меня следующая проблема: у меня есть сервер с довольно динамичной сетевой конфигурацией, и мне нужно настроить на нем маршруты с параметром IF:

route add  ... mask ... ... if ?

Есть ли надежный способ, ручной или программный, чтобы получить этот номер интерфейса, если я знаю почти все остальное об этом адаптере?

Вы также можете увидеть эту информацию, когда запустите route print команда. Это первое, что отображается. Индекс - это первый столбец

===========================================================================
Interface List
 13... ......Bluetooth Device (Personal Area Network)
 10... ......Intel(R) 82566MM Gigabit Network Connection
 11... ......Intel(R) Wireless WiFi Link 4965AG
 17... ......VMware Virtual Ethernet Adapter for VMnet1
 18. . ......VMware Virtual Ethernet Adapter for VMnet8

Следующая команда отображает список интерфейсов:

netsh int ipv4 show interfaces

Поскольку вы знаете все остальное об адаптере, и поскольку вы используете Server 2008, вы можете (и должны) просто добавьте свои маршруты с помощью netsh используя имя интерфейса:

netsh int ipv4 add route <remote netid>/<remote netmask> <interface name> <next hop>

Использование команды маршрута обычно не рекомендуется в 2008+.

Вы можете использовать PowerShell:

Get-WMIObject Win32_networkadapter | Select-Object Name, AdapterType, InterfaceIndex | Format-List