Я знаю, что IPv6 позволяет опускать последовательные нули. Но как насчет IPv4? Я не нашел ссылки на это в Интернете, включая Wikipedia и RFC 791 - Internet Protocol. В этом документе предполагается, что «ведущие нули могут быть опущены» в адресе IPv4 (поиск по термину «опущен»). Не достаточно конкретно.
Проверьте эту сессию оболочки:
[~]$ ping -c 1 127.1
PING 127.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.040 ms
--- 127.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.040/0.040/0.040/0.000 ms
[~]$ ping -c 1 127.0.1
PING 127.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.044 ms
--- 127.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.044/0.044/0.044/0.000 ms
[~]$ ssh 127.1 :
The authenticity of host '127.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is 04:48:fa:f2:ef:95:7c:35:46:39:2e:d3:89:dd:cd:87.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.1' (ECDSA) to the list of known hosts.
alex@127.1's password:
Очевидно, что и ping, и ssh понимают 127.1 и 127.0.1 так же, как 127.0.0.1. Где это указано?
ip-address
specifications
ipv4
Александр де Вертёй
источник
источник
ping 0.0.0.0
илиping 0
работает так же ...)Ответы:
Примерно год назад было сообщение о переполнении стека, в котором просят что-то подобное ( этот пост ).
Основная причина в том, как
inet_aton()
( man-страница ) преобразует октеты в двоичный адрес.Это не определено POSIX.anything - но это доступно довольно широко.
источник
Это пережиток старых времен классного обращения.
127.1
означает сеть127
, хост1
. (И, да,127.257
это законно, потому что сеть127
может иметь более 256 хостов.источник