地址转换函数:inet_ntoa() 和 inet_addr()
inet_ntoa():
- 函数原型:
char *inet_ntoa(struct in_addr);
- 参数:in_addr是一个结构体,用来表示一个32位的IPV4地址。
struct in_addr{
in_addr_t s_addr;
}
返回值:返回点分十进制的字符串在静态内存中的指针。
点分十进制:
- 全称为点分(点式)十进制表示法,是IPV4的IP地址标识方法。
- IPV4中用4个字节表示一个IP地址,每个字节按照十进制表示为0~255。
- 点分十进制就是用4个从0~255的数字,来表示一个IP地址。
- 例如:192.168.1.246
头文件:
<arpa/inet.h>
别称:IP地址转换函数。
功能:将网络字节序IP转化成点分十进制IP
网络字节序:网络字节序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian(大端)排序方式。
inet_addr():
- 简介:
inet_addr方法可以转化字符串,主要用来将一个十进制的数转化为二进制的数,用途多余IPV4的IP转化。 - 函数原型:
in_addr_t inet_addr(const char* cp);
- 参数:字符串,一个点分十进制的IP地址。
- 返回值:
若字符串有效,则将字符串转换为32位二进制网络字节序的IPV4地址;否则,为INADDR_NONE - 头文件:
<arpa/inet.h>
- 别称:IP地址转化函数。
- 功能:将一个点分十进制的IP转换成一个长整数型(u_long类型)。