У меня следующая проблема: у меня есть сервер с довольно динамичной сетевой конфигурацией, и мне нужно настроить на нем маршруты с параметром 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