2012-02-18 121 views
2

我知道有可能在IPv4中以整数形式写入IP,例如, 2130706433而不是127.0.0.1罕见的IP符号

这种可能性的原因是什么?

是否有类似的IPv6表示法?

我尝试ping -6 1作为ping ::1的尝试,但不起作用(主机不存在)。

回答

3

IPv4地址可以用多种方式表示。例如默认的回送IP可以是以下之一:

  • 127.0.0.1
  • 0177.0.0.1
  • 0x7f.0.0.1
  • 127.0.1
  • 127.1
  • 0x7f000001

第一个符号(完整的8位小数点)广泛使用,其余的很少使用,但允许使用inet_addr POSIX标准函数。在处理IPv4和IPv6地址的较新的inet_ntop/inet_pton POSIX标准功能中,只保留了第一个熟悉的标记。

对于IPv6,采用16位十六进制点分表示法,并带有可选的小数点后缀(用于嵌入式IPv4),也是可选的零压缩是标准定义的内容。

如:

  • 2001:将0db8:85±3:0000:0000:8a2e:9370:7334
  • 2001:将0db8:85±3 :: 8a2e:9370:7334

有那么仍然是单个地址的多个表示。为避免造成混淆,RFC 5952建议使用允许唯一表示法的规范形式。

1

IPv4地址只是一个32位数字。你可以用任何方式来表示这个数字(十进制,十六进制,八进制)。虚线符号a.b.c.d更实用。

你可以用IPv6地址做同样的事情,除了那些是128位数字 - 更难以十进制格式。

通常的工具只会处理通常的符号。十进制不是其中之一。