2011-07-26 36 views
0

我想编写一个应用程序来检测Windows计算机系统上所有网络连接的IP地址,以及连接到所有以太网设备的IP地址该系统。有没有一种简单的方法可以通过Windows API以编程方式执行此操作?使用Windows API检测网卡和以太网设备的IP地址

我在寻找的C++相当于这个问题的答案:
How do I check for a network connection?
以及如何枚举连接的以太网设备。

我知道Beej的网络指南,我实际上(慢慢地)让我通过它,但我认为如果有更快,更简单的方法,那将是太棒了。我搜索了所有的StackOverflow,没有太多的运气。

如果有人有任何建议,或可以指向我一个有用的指导,那将是伟大的!

谢谢!

--R

回答

3

GetAdaptersInfo:获取本地计算机的适配器信息。

DWORD GetAdaptersInfo(
    __out PIP_ADAPTER_INFO pAdapterInfo, 
    __inout PULONG pOutBufLen 
); 

MSDN for GetAdaptersInfo

+0

我挂你从这里链接的一个GetAdaptersAddresses MSDN文章和测试代码。似乎有帮助,我现在正在更多地研究它。谢谢! – 8bitcartridge

0

为了让您的计算机的所有IP地址使用下面的代码

char chHostName[MAX_PATH]; 
if (gethostname(chHostName, sizeof(chHostName)) == SOCKET_ERROR) 
{ 
    return "0.0.0.0"; 
} 
struct addrinfo hints; 
struct addrinfo *result = NULL; 

// Setup the hints address info structure 
// which is passed to the getaddrinfo() function 
ZeroMemory(&hints, sizeof(hints)); 
hints.ai_family = AF_UNSPEC; 
hints.ai_socktype = SOCK_STREAM; 
hints.ai_protocol = IPPROTO_TCP; 

dwRetval = getaddrinfo(chHostName, NULL, &hints, &result); 



for(ptr=result; ptr != NULL ;ptr=ptr->ai_next) 
{ 
//Parse the address 
} 
相关问题