Internet地址的基本数据结构如下:
#include <netinet/in.h> struct sockaddr_in { short sin_family; // e.g. AF_INET unsigned short sin_port; // e.g. htons(3490) struct in_addr sin_addr; // see struct in_addr, below char sin_zero[8]; // zero this if you want to }; struct in_addr { unsigned long s_addr; // load with inet_aton() };
IP字符串转换到unsigned long:
in_addr ip_addr; inet_aton("63.161.169.137", &ip_addr);
unsigned long转换到IP字符串:
char ip[64]; in_addr in; in.s_addr = htonl(176427304); //unsigned long to be converted strcpy(ip, inet_ntoa(in)); printf("ip: %s\n", ip);
使用的时候只要include下面的头文件:
#include <netinet/in.h> #include <arpa/inet.h>