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.