IPv4地址的二进制形式长度为32,使用我们常用的点分十进制形式进行表示那么最长长度为15,例如“255.255.255.255”
所以在posix的<netinet/in.h>中定义的IPv4地址字符串形式最大长度为16字节,‘\0’结束符也需要占据1个字节:
#define INET_ADDRSTRLEN 16
IPv6地址的二进制形式长度为128,使用16进制形式进行表示如“ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff”,一开始我以为IPv6地址字符串形式最大长度为128/4+7+1=40字节
但是看posix的<netinet/in.h>中定义的IPv6地址字符串形式最大长度为46字节
#define INET6_ADDRSTRLEN 46
原来IPv4映射的IPv6地址可能出现这种格式“ffff:ffff:ffff:ffff:ffff:ffff:255:255:255:255”,也就是45字节,加上结束符就是46字节了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)