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?

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

14

O comando a seguir exibe a lista de interfaces:

netsh int ipv4 show interfaces


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+.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.