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 IP2: %s ", ip1, ip2); 29 printf("Addr1: %ld Addr2: %ld ", l1, l2); 30 31 memcpy(&addr1, &l1, 4); //复制4个字节大小 32 memcpy(&addr2, &l2, 4); 33 printf("%s <--> %s ", inet_ntoa(addr1), inet_ntoa(addr2)); //注意:printf函数自右向左求值、覆盖 34 printf("%s ", inet_ntoa(addr1)); //网络字节顺序的整型值 ->字符串形式的IP地址 35 printf("%s ", inet_ntoa(addr2)); 36 37 getchar(); 38 return 0; 39 }