2012-01-23 8 views
6

Hay una función llamada if_nametoindex() que convierte un nombre de interfaz en un índice de interfaz. Esta función parece estar disponible en Linux y Windows. En Linux, imagino que estos nombres de interfaz pueden parecerse a "eth0" o "wlan0".¿Cómo son los "nombres de interfaz" de Windows?

Mi pregunta es: ¿cómo se ven los nombres de la interfaz Win32? ¿Y hay llamadas que me permitan consultar qué nombres de interfaz están disponibles?

Respuesta

5

También hay if_indextoname. He agregado el resultado a continuación. Este estilo de nombre (por ejemplo, loopback_0) no es nombre de interfaz Win32. Supongo que estos nombres solo existen por compatibilidad con rfc2553. Win32 realmente usa nombres de interfaz como \DEVICE\TCPIP_{846EE342-7039-11DE-9D20-806E6F6E6963}.

Para enumerar todas las interfaces, debe usar GetIfTable y sus amigos. if_nameindex no es compatible.

loopback_0 
tunnel_0 
tunnel_2 
tunnel_3 
ppp_0 
ethernet_0 
ethernet_1 
ethernet_4 
ppp_1 
wireless_0 
ethernet_9 
tunnel_4 
tunnel_1 
tunnel_7 
tunnel_8 
wireless_5 
tunnel_5 
tunnel_9 
tunnel_10 
tunnel_6 
wireless_1 
wireless_2 
ethernet_2 
ethernet_3 
ethernet_5 
ethernet_6 
ethernet_7 
wireless_3 
wireless_4 
wireless_6 
wireless_7 
wireless_8 
2

Se parecen a \Device\NPF_{506B4345-1FC0-43F4-BFCF-4FFAD7739AFF}. No sé si hay una forma más directa de obtener una lista de interfaces, pero obtuve esta de wireshark, que usa winpcap.

Cuestiones relacionadas