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


17

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

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

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

Ответы:


22

Вы можете увидеть эту информацию также при запуске 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

14

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

netsh int ipv4 show interfaces


1
Это работает, но вы должны немного пояснить свой ответ, чтобы убедиться, что он не помечен.
— TheCleaner

9

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

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

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


Я бы не сказал, что он устарел ... просто сейчас рекомендуется использовать netsh. :) Кстати, ваша команда должна быть "netsh interface ipv4 add route"
— Rex

Да, он двигался слишком быстро, команда отредактирована :) Хотя Microsoft редко использует термин «устарел», я полагаю, что их термин в основном был «Рекомендуется использовать netsh вместо маршрута» для продвижения вперед. Я лично видел некоторые проблемы с кластерами при использовании команды route, в которых проблемы маршрутизации возникают при отказе.
— Феб

2
Обратите внимание, что имя adatper может отличаться от имени в, route printи использование неправильного имени приведет к появлению «полезного» сообщения об ошибке: «Неверный синтаксис имени файла, имени каталога или метки тома». используйте, netsh interface ipv4 show interfacesчтобы найти реальное имя.
— ET-CS

3

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

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

Это возвращает числа, но они не совпадают с route printвыводом. Эти DeviceIDзначения также не совпадают. (И нет, это не просто вопрос «один на один».)
— Джон Сигел,

Согласно блогу MS, routeкоманда возвращает приоритет адаптера. Эта команда возвращает InterfaceIndex. смотрите здесь: blogs.technet.microsoft.com/networking/2015/08/14/...
— bobpaul
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.