Windows: obtenha o número da interface de uma NIC

17

Eu tenho o seguinte problema: Eu tenho um servidor com uma configuração de rede bastante dinâmica e preciso configurar rotas nele com o parâmetro IF:

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

Existe uma maneira confiável, manual e ou programática, de obter esse número de interface se eu souber quase tudo sobre esse adaptador?

AndreasT
fonte

Respostas:

22

Você pode ver essas informações também quando você executa o route printcomando. É a primeira coisa exibida. O índice é a primeira coluna

===========================================================================
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
Rex
fonte
14

O comando a seguir exibe a lista de interfaces:

netsh int ipv4 show interfaces

Admin
fonte
1
Isso funciona, mas você deve explicar um pouco sua resposta para garantir que ela não seja sinalizada.
TheCleaner 15/01
9

Como você sabe tudo sobre o adaptador e como está usando o Server 2008, você pode (e deve) adicionar suas rotas com netsh usando o nome da interface:

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

O uso do comando route é geralmente descontinuado em 2008+.

phoebus
fonte
Eu não diria que é depreciado .. é apenas mais recomendado usar o netsh agora. :) BTW, seu comando deve ser "netsh interface ipv4 add route"
Rex
Sim, estava se movendo muito rápido, comando editado :) Embora a Microsoft raramente use o termo "descontinuado", acredito que o termo era basicamente "Recomenda-se que o netsh seja usado em vez da rota" seguindo adiante. Eu, pessoalmente, vi alguns problemas com clusters ao usar o comando route, no qual ocorrem problemas de roteamento no failover.
Phoebus
2
Observe que o nome do adatper pode ser diferente do nome route printe o uso do nome incorreto resultará na mensagem de erro "útil": "O nome do arquivo, o nome do diretório ou a sintaxe do rótulo do volume está incorreta.". use netsh interface ipv4 show interfacespara encontrar o nome real.
ET-CS
3

Você pode usar o PowerShell:

Get-WMIObject Win32_networkadapter | Select-Object Name, AdapterType, InterfaceIndex | Format-List
cuonglm
fonte
Isso retorna números, mas eles não coincidem com a route printsaída. Os DeviceIDvalores também não correspondem. (E não, não é simplesmente uma questão off-by-one.)
Jon Seigel
De acordo com o blog da MS, o routecomando retorna a prioridade do adaptador. Este comando retorna o InterfaceIndex. veja aqui: blogs.technet.microsoft.com/networking/2015/08/14/…
bobpaul