INET_ADDRSTRLEN 和 INET6_ADDRSTRLEN 长度

在<netinet/in.h>中有这两个宏的定义

#define INET_ADDRSTRLEN 16 #define INET6_ADDRSTRLEN 46

-- INET_ADDRSTRLEN

这是32位ipv4地址,用10进制+句点表示时,所使用内存长度的最大值。

111.111.111.111 这是最大长度的一个例子,其中包括4组十进制整数,每组3个,三个句点,再加一个NULL符号,所以总共需要4*3+3+1=16个字节
-- INET6_ADDRSTRLEN

这是128位ipv6地址,用十六进制+冒号显示时,所使用内存长度的最大值

也支持兼容ipv4的兼容格式

非兼容格式:1111:1111:1111:1111:1111:1111:1111:1111,这是非兼容格式最大长度的一个例子,其中包括8组十六进制整数,每组4个,七个冒号,再加一个NULL结束符,所以总共需要8*4+7+1=40个字节

兼容格式:1111:1111:1111:1111:1111:1111:111.111.111.111,这是兼容格式最大长度的一个例子,其中包括6组十六进制整数,每组4个,六个冒号,再加一组ipv4地址,一个NULL结束符,所以总共需要8*4+6+16=46个字节

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwxzz.html