如何获取本机IP地址?
如何获取本机IP地址
如何获取本机计算机名和IP地址?
代码实现如下:

Code
1
2
#include<stdio.h>
3
#include<winsock2.h>
4
#pragma comment(lib,"ws2_32.lib")
5
6
CString 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().
26
27
28
//下面的是在控制台下实现的
29
#include<stdio.h>
30
#include<winsock2.h>
31
#pragma comment(lib,"ws2_32.lib")
32
33
void 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
}
53
54
int main(void)
55

{
56
GetLocalIP();
57
return 0;
58
}
代码实现如下:
1

2
#include<stdio.h> 3
#include<winsock2.h>4
#pragma comment(lib,"ws2_32.lib")5

6
CString 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(). 26

27

28
//下面的是在控制台下实现的29
#include<stdio.h> 30
#include<winsock2.h>31
#pragma comment(lib,"ws2_32.lib")32

33
void 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
} 53

54
int main(void)55


{56
GetLocalIP();57
return 0;58
} 
浙公网安备 33010602011771号