How to enumerate all available network interfaces? [duplicate]

て烟熏妆下的殇ゞ 提交于 2019-12-01 03:18:08

Have a look at http://www.codeproject.com/KB/IP/netcfg.aspx. It's a giant example of what you want to do.

It sounds like you want a combination of a few different functions.

To get a list of adapters with their IPv4 addresses/masks, associated WINS servers and DNS servers, you can use GetAdaptersInfo. To get IPv6 addresses, you can use GetAdaptersAddresses.

Depending on what is included in your "etc." you might also want GetIfTable and GetIfEntry. GetIfTable gets a list of network adapters. GetIfEntry gets you information about each. These retrieve things like the amount of data that's been transmitted/retrieved over a particular interface. There's also a GetIfTable2/GetIfEntry2 that are only for Vista and newer that get more information.

If memory serves, GetIfTable/GetIfEntry list all the interfaces in the machine. GetAdaptersInfo only works with the "real" adapters.

Perversely you can use getaddrinfo ("..localmachine") to enumerate interfaces on Windows 2003+.

http://msdn.microsoft.com/en-us/library/ms738520(v=vs.85).aspx

Windows 7 with Service Pack 1 (SP1) and Windows Server 2008 R2 with Service Pack 1 (SP1) add support to hide interfaces.

http://support.microsoft.com/kb/2386184

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!