2011-03-06 90 views
10

如何枚舉計算機上當前可用的所有網絡接口(包括虛擬,非連接,環回等)?如何枚舉所有可用的網絡接口?

我需要知道他們的IP4/6,掩碼,網關,DNS,WINS等


語言: C++,WinAPI的

系統: Windows 2000及更高版本(包括Win7的)

+1

考慮這個問題:http://stackoverflow.com/questions/3069082/porting-getifaddrs-to-win-xp – 2011-03-08 06:38:29

回答

5

看一看http://www.codeproject.com/KB/IP/netcfg.aspx。這是你想要做的一個巨大的例子。

+0

@bmarguliesm,你聯網的真正大師!萬分感謝。 – Andrew 2011-03-06 22:03:37

+0

我意識到這是一個老_really_答案,但有您可以編輯任何機會,以配合SO的新的質量標準? (即不是鏈接) – 2017-02-19 07:35:15

+0

我無權訪問窗口。隨意做到這一點。 – bmargulies 2017-02-19 15:07:51

8

這聽起來像你想要幾個不同的功能的組合。

要獲得帶有IPv4地址/掩碼的適配器列表,關聯的WINS服務器和DNS服務器,可以使用GetAdaptersInfo。要獲得IPv6地址,您可以使用GetAdaptersAddresses

根據「等」中包含的內容,您可能還需要GetIfTableGetIfEntryGetIfTable獲取網絡適配器的列表。 GetIfEntry獲取有關每個人的信息。這些檢索的東西就像通過特定接口傳輸/檢索的數據量。還有一個GetIfTable2/GetIfEntry2只適用於Vista和更新,獲取更多信息。

如果內存服務,GetIfTable/GetIfEntry列表全部機器中的接口。 GetAdaptersInfo只適用於「真實」適配器。

+0

+1謝謝,傑瑞。我將與你的建議延長@bmargulies的解決方案 – Andrew 2011-03-06 22:34:46