Hasty Briefsbeta

双语

Fun with IP Address Parsing

a year ago
  • #IPv4
  • #IPv6
  • #networking
  • IPv4和IPv6有标准格式:IPv4为点分十进制(如192.168.0.1),IPv6为冒号十六进制(如1:2:3:4:5:6:7:8)。
  • IPv6允许用`::`省略零值(如`1:2::3:4`展开为`1:2:0:0:0:0:3:4`)。
  • IPv6支持在最后32位嵌入IPv4地址(如`1:2:3:4:5:6:77.77.88.88`)。
  • IPv4存在历史遗留特性:可用32位整数表示(如3232271615对应192.168.140.255)。
  • IPv4支持八进制(如0300.0250.0214.0377)和十六进制(如0xc0.0xa8.0x8c.0xff)表示法。
  • A/B类记法允许合并末尾字节(如192.168.36095表示192.168.140.255)。
  • IPv4/IPv6字段中的前导零通常允许但处理方式不一致(如000001::00001.00002.00003.00004)。
  • 现代解析器通常忽略过时的表示法,如A/B类或IPv4的十六进制/八进制格式。