C++获取本机IP地址
获取本机IP地址的一种方法,代码如下:
1 char* ip=new char[16]; 2 //1.初始化wsa 3 WSADATA wsaData; 4 int ret = WSAStartup(MAKEWORD(2, 2), &wsaData); 5 if (ret == 0) 6 { 7 8 //2.获取主机名 9 char hostname[256]; 10 ret = gethostname(hostname, sizeof(hostname)); 11 if (ret != SOCKET_ERROR) 12 { 13 14 //3.获取主机ip 15 HOSTENT* host = gethostbyname(hostname); 16 if (host != NULL) 17 { 18 19 //4.转化为char*并拷贝返回 20 strcpy(ip, inet_ntoa(*(in_addr*)*host->h_addr_list)); 21 } 22 } 23 }
如果本机有多个ip地址,可以从第20行代码的h_addr_list中依次取出来。
看见的另外一种方法,C++获得本机所有网卡的IP和MAC地址信息。