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>