IP地址与整型转换
2017-11-27
方法
- inet_addr 函数将数字和点组成的字符串转换为一个无符号长整行
- inet_ntoa函数接受一个sin_addr将sin_addr.s_addr转化为num.num.num.num这样的字符串。inet_ntoa返回一个字符串指针,它指向一个定义在函数inet_ntoa内置static类型字符串,所以对这个函数每次调用都会改变上一次的调用结果。
#include <stdio.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main (
char s[10];
memset(s, '\0', sizeof(s));
memcpy(s, "1.2.3.4", strlen("1.2.3.4"));
//host转ip
int ans = inet_addr(s);
struct in_addr in;
in.s_addr = ans;
//ip转host
printf("%d -> %s\n", ans, inet_ntoa(in));
return 0;
)