2012-01-23 17 views
6

Esiste una funzione chiamata if_nametoindex() che converte un nome di interfaccia in un indice di interfaccia. Questa funzione sembra essere disponibile su Linux e Windows. Su Linux, immagino che questi nomi di interfaccia possano apparire come "eth0" o "wlan0".Che aspetto hanno i "nomi di interfaccia" di Windows?

La mia domanda è: come sono i nomi dell'interfaccia di Win32? E ci sono delle chiamate che mi consentono di interrogare quali nomi di interfaccia sono disponibili?

risposta

5

C'è anche if_indextoname. Ho aggiunto l'output qui sotto. Questo stile di nome (ad esempio loopback_0) non è il nome dell'interfaccia Win32. Immagino che questi nomi esistano solo per compatibilità con rfc2553. Win32 utilizza effettivamente nomi di interfaccia come \DEVICE\TCPIP_{846EE342-7039-11DE-9D20-806E6F6E6963}.

Per enumerare tutte le interfacce necessarie per utilizzare GetIfTable e gli amici. if_nameindex non è supportato.

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

Sembrano \Device\NPF_{506B4345-1FC0-43F4-BFCF-4FFAD7739AFF}. Non so se c'è un modo più diretto per ottenere un elenco di interfacce, ma ho preso questo da wireshark, che usa winpcap.

Problemi correlati