inet_addr 将字符串形式的IP地址 -> 网络字节顺序 的整型值
inet_ntoa 网络字节顺序的整型值 ->字符串形式的IP地址
1 #define _WINSOCK_DEPRECATED_NO_WARNINGS
2 #include<WinSock2.h>
3 #include<iostream>
4 using namespace std;
5
6 #pragma comment(lib, "ws2_32.lib")
7
8 int main()
9 {
10 WORD wVersionRequested;
11 WSADATA wsaData;
12 int err;
13
14 wVersionRequested = MAKEWORD(1, 1);
15
16 err = WSAStartup(wVersionRequested, &wsaData);
17 if (err != 0) {
18 return 0;
19 }
20
21
22 char ip1[] = "192.168.0.74";
23 char ip2[] = "211.100.21.179";
24 struct in_addr addr1, addr2;
25 long l1, l2;
26 l1 = inet_addr(ip1); //将字符串形式的IP地址 -> 网络字节顺序 的整型值
27 l2 = inet_addr(ip2);
28 printf("IP1: %s\n IP2: %s\n", ip1, ip2);
29 printf("Addr1: %ld\n Addr2: %ld\n", l1, l2);
30
31 memcpy(&addr1, &l1, 4); //复制4个字节大小
32 memcpy(&addr2, &l2, 4);
33 printf("%s <--> %s\n", inet_ntoa(addr1), inet_ntoa(addr2)); //注意:printf函数自右向左求值、覆盖
34 printf("%s\n", inet_ntoa(addr1)); //网络字节顺序的整型值 ->字符串形式的IP地址
35 printf("%s\n", inet_ntoa(addr2));
36
37 getchar();
38 return 0;
39 }