首页 > 代码库 > C++获取本机IP等信息
C++获取本机IP等信息
运行环境:VS2008,win7,代码来源于MSDN,相关函数可以查看MSDN中的函数定义。。
代码如下:
1 #include <winsock2.h> 2 #include <ws2tcpip.h> 3 #include <stdio.h> 4 #include <windows.h> 5 #pragma comment(lib, "ws2_32.lib") 6 7 int main(int argc, char **argv) 8 { 9 10 //-----------------------------------------11 // Declare and initialize variables12 WSADATA wsaData;13 int iResult;14 15 DWORD dwError;16 int i = 0;17 18 struct hostent *remoteHost;19 char *host_name;20 struct in_addr addr;21 22 char **pAlias;23 iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);24 if (iResult != 0) {25 printf("WSAStartup failed: %d\n", iResult);26 return 1;27 }28 29 host_name = new char[100];30 int index = gethostname(host_name,strlen(host_name));31 if (0 != index)32 {33 printf("Error\n");34 }35 36 printf("Calling gethostbyname with %s\n", host_name);37 remoteHost = gethostbyname(host_name);38 39 if (remoteHost == NULL) {40 dwError = WSAGetLastError();41 if (dwError != 0) {42 if (dwError == WSAHOST_NOT_FOUND) {43 printf("Host not found\n");44 return 1;45 } else if (dwError == WSANO_DATA) {46 printf("No data record found\n");47 return 1;48 } else {49 printf("Function failed with error: %ld\n", dwError);50 return 1;51 }52 }53 } else {54 printf("Function returned:\n");55 printf("\tOfficial name: %s\n", remoteHost->h_name);56 for (pAlias = remoteHost->h_aliases; *pAlias != 0; pAlias++) {57 printf("\tAlternate name #%d: %s\n", ++i, *pAlias);58 }59 printf("\tAddress type: ");60 switch (remoteHost->h_addrtype) {61 case AF_INET:62 printf("AF_INET\n");63 break;64 case AF_NETBIOS:65 printf("AF_NETBIOS\n");66 break;67 default:68 printf(" %d\n", remoteHost->h_addrtype);69 break;70 }71 printf("\tAddress length: %d\n", remoteHost->h_length);72 73 i = 0;74 if (remoteHost->h_addrtype == AF_INET)75 {76 while (remoteHost->h_addr_list[i] != 0) {77 addr.s_addr = *(u_long *) remoteHost->h_addr_list[i++];78 printf("\tIP Address #%d: %s\n", i, inet_ntoa(addr));79 }80 }81 else if (remoteHost->h_addrtype == AF_NETBIOS)82 { 83 printf("NETBIOS address was returned\n");84 } 85 }86 87 return 0;88 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。