#include <ws2tcpip.h>
bool print_Local_Addrs()
{
//1初始化网络环境
WSADATA wsaData;
int ret=WSAStartup(MAKEWORD(2,2),&wsaData);
if (ret!=0)
{
return false;
}
//2获取本机名称
char hostname[256];
if ( 0 != gethostname(hostname,sizeof(hostname)) )
{
return false;
}
//3获取本机所有IPv4地址
struct addrinfo hints;
ZeroMemory( &hints, sizeof(hints) );
hints.ai_family = AF_INET; //IPv4
hints.ai_socktype = SOCK_DGRAM;//UDP
hints.ai_protocol = IPPROTO_UDP;
struct addrinfo *result = 0;
if ( 0 != getaddrinfo(hostname, 0 , &hints, &result) )
{
return false;
}
//4打印地址
for(struct addrinfo *ptr=result; ptr != 0 ;ptr=ptr->ai_next)
{
switch (ptr->ai_family)
{
case AF_INET://IPv4
{
const struct in_addr &sin_addr = ((struct sockaddr_in *) ptr->ai_addr)->sin_addr;
// 打印sin_addr
}
}
}
freeaddrinfo(result);
return true;
}
}
代码 Window获取本地所有IP地址
最新推荐文章于 2022-02-11 11:06:27 发布