有一個稱爲if_nametoindex()的函數,可將接口名稱轉換爲接口索引。此功能似乎可在Linux和Windows上使用。在Linux上,我想這些接口名稱可能看起來像「eth0」或「wlan0」。windows「界面名稱」是什麼樣的?
我的問題是:什麼是Win32接口名稱的樣子?是否有任何呼叫讓我查詢可用的接口名稱?
有一個稱爲if_nametoindex()的函數,可將接口名稱轉換爲接口索引。此功能似乎可在Linux和Windows上使用。在Linux上,我想這些接口名稱可能看起來像「eth0」或「wlan0」。windows「界面名稱」是什麼樣的?
我的問題是:什麼是Win32接口名稱的樣子?是否有任何呼叫讓我查詢可用的接口名稱?
還有if_indextoname
。我已經添加了下面的輸出。這種風格的名稱(例如loopback_0
)不是的 Win32接口名稱。我想這些名字只存在與rfc2553兼容。 Win32實際上使用接口名稱,如\DEVICE\TCPIP_{846EE342-7039-11DE-9D20-806E6F6E6963}
。
要枚舉所有需要使用GetIfTable
和朋友的接口。不支持if_nameindex
。
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
它們看起來像\Device\NPF_{506B4345-1FC0-43F4-BFCF-4FFAD7739AFF}
。我不知道是否有更直接的方式來獲取接口列表,但我從wireshark中得到了這個接口,它使用winpcap。