IP地址与整型转换

方法

  1. inet_addr 函数将数字和点组成的字符串转换为一个无符号长整行
  2. 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;
)

参考