一:不安全的(不可重入性)inet_xxx()函数族
由于计算机理解的IP都是以二进制形式保存的,那么在网络程序设计中经常会需要字符串IP和二进制IP的转换,linux系统有一组要用于网络地址转换的函数,如下:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int inet_aton(const char *cp, struct in_addr *inp);//将点分4段式的IP地址转换为结构in_addr值
in_addr_t inet_addr(const char *cp);//将字符串转换为结构in_addr值
in_addr_t inet_network(const char *cp);//将字符串地址的网络部分转换为结构in_addr值
char *inet_ntoa(struct in_addr in);//将结构in_addr转为字符串
struct in_addr inet_makeaddr(int net, int host);//将网络地址和主机地址合成为IP地址,返回值是in_addr值
in_addr_t inet_lnaof(struct in_addr in);//获得地址的主机部分
in_addr_t inet_netof(struct in_addr in);//获得地址的网络部分