如何获取本机IP地址 如何获取本机计算机名和IP地址? 代码实现如下: Code 1 2#include<stdio.h> 3#include<winsock2.h> 4#pragma comment(lib,"ws2_32.lib") 5 6CString GetLocalIP() 7{ 8 char Name[255];//定义用于存放获得的主机名的变量 9 char *IP;//定义IP地址变量 10 CString strIP="";11 PHOSTENT hostinfo;12 if(gethostname(Name,sizeof(Name))== 0)13 { 14 //如果成功地将本地主机名存放入由name参数指定的缓冲区中 15 if((hostinfo = gethostbyname(Name)) != NULL) 16 { 17 //这是获取主机名,如果获得主机名成功的话,将返回一个指针,指向hostinfo,hostinfo 18 //为PHOSTENT型的变量,下面即将用到这个结构体 19 IP = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);20 strIP.Format(IP);21 }22 }23 return strIP;24}25以上代码实现了获取本机IP和计算机名的信息,使用了gethostname()和gethostbyname(). 262728//下面的是在控制台下实现的29#include<stdio.h> 30#include<winsock2.h>31#pragma comment(lib,"ws2_32.lib")3233void GetLocalIP(void) 34{35 WSADATA wsaData;36 char name[155];37 char *IP;38 PHOSTENT hostinfo; 39 if ( WSAStartup( MAKEWORD(2,0), &wsaData) == 0 ) 40 { 41 if( gethostname ( name, sizeof(name)) == 0)42 { 43 if((hostinfo = gethostbyname(name)) != NULL) 44 { 45 //这些就是获得IP的函数46 IP = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list); 47 printf("%s\n",IP);48 } 49 } 50 WSACleanup( );51 } 52} 5354int main(void)55{56 GetLocalIP();57 return 0;58} 相关文章: 2021-08-07 2021-11-15 2021-11-05 2021-11-05 2021-11-05 2021-11-05 2021-10-16 2021-10-24