#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
int main()
{
char ip[] = "192.168.22.1";
long r1, r2; //long
int r3;
struct in_addr addr;
r1 = inet_addr(ip); //返回网络字节序
if(-1 == r1){
printf("inet_addr return -1\n");
}else{
printf("inet_addr ip: %lx\n",r1);
printf("inet_addr ip: %x\n", ntohl(r1));
}
r2 = inet_network(ip); //返回主机字节序
if(-1 == r2){
printf("inet_network return -1\n");
}else{
printf("inet_network ip: %lx\n",r2);
printf("inet_network ip: %x\n", htonl(r2)); //ntohl: 主机字节序 ——> 网络字节序
}
memcpy(&addr,&r1,4);
printf("%s\n", inet_ntoa(addr)); //网络字节序->点分十进制IP
memset(&addr,0,4);
r3 = inet_aton(ip, &addr); //返回网络字节序
if(0 == r3){
printf("inet_aton return -1/n");
}else{
printf("inet_aton ip: %lx\n", addr.s_addr);
}
return 0;
}