C++ 使用Windows API检测网卡和以太网设备的IP地址

C++ 使用Windows API检测网卡和以太网设备的IP地址,c++,windows,ip-address,C++,Windows,Ip Address,我想编写一个应用程序来检测Windows计算机系统上所有网络连接的IP地址,以及连接到该系统的所有以太网设备的IP。有没有一种简单的方法可以通过Windows API编程实现这一点 我正在寻找C++与这个问题的答案等价: 以及如何枚举已连接的以太网设备 我知道Beej的网络指南,实际上我正在(慢慢地)通过它,但我想如果有一个更快、更简单的方法,那将是非常棒的。我到处找,运气不太好 如果有人有什么建议,或者能给我指一本有用的指南,那就太好了 谢谢 --R获取适配器信息:检索本地计算机的适配器信息

我想编写一个应用程序来检测Windows计算机系统上所有网络连接的IP地址,以及连接到该系统的所有以太网设备的IP。有没有一种简单的方法可以通过Windows API编程实现这一点

我正在寻找C++与这个问题的答案等价:

以及如何枚举已连接的以太网设备

我知道Beej的网络指南,实际上我正在(慢慢地)通过它,但我想如果有一个更快、更简单的方法,那将是非常棒的。我到处找,运气不太好

如果有人有什么建议,或者能给我指一本有用的指南,那就太好了

谢谢


--R

获取适配器信息:检索本地计算机的适配器信息

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

MSDN for.

GetAdapterInfo:检索本地计算机的适配器信息

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

MSDN for.

要获取计算机的所有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
}

要获取计算机的所有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
}

我从您在这里链接并测试代码的那篇文章链接到了GetAdapterAddresses MSDN文章。看起来很有帮助,我现在正在进一步调查。谢谢我从您在这里链接并测试代码的那篇文章链接到了GetAdapterAddresses MSDN文章。看起来很有帮助,我现在正在进一步调查。谢谢