IPv4
定义在 <netinet/in.h> 中:
#define INET_ADDRSTRLEN 16
IPv4地址字符串表示: 192.168.100.100
32位(bits)IPv4地址,使用10进制+句点字符串表示时,所占用的char数组的长度为16,包括最后一个NULL(‘\0’)结束符。
IPv6
定义在 <netinet/in.h> 中:
#define INET6_ADDRSTRLEN 46
128位(bits)IPv6地址,使用8组16进制字符串表示。
IPv6地址字符串的几种长度较长的表示方式:
表示方法 | 地址 | 长度 | 描述 |
---|---|---|---|
一般表示 | ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 | 40 = 8*4 + 7 + 1 | 8组4位,7个:,1个NULL |
混合表示 | ABCD:EF01:2345:6789:ABCD:EF01:192.168.100.100 | 46 = 6*4 + 6 + 15 + 1 | 6组4位,6个:,IPv4,1个NULL |
46 here is to support ipv4-mapped-on-ipv6.