Eu sei que o IPv6 permite que zeros consecutivos sejam omitidos. Mas e o IPv4? Não encontrei nenhuma referência a isso na Internet, incluindo Wikipedia e RFC 791 - Internet Protocol. Este documento sugere que "zeros à esquerda podem ser omitidos" em um endereço IPv4 (procure o termo 'omitido'). Não é específico o suficiente.
Confira esta sessão do shell:
[~]$ 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.
[email protected]'s password:
Claramente, tanto o ping quanto o ssh entendem 127.1 e 127.0.1 como iguais a 127.0.0.1. Onde isso é especificado?
ip-address
specifications
ipv4
Alexandre de Verteuil
fonte
fonte
ping 0.0.0.0
ouping 0
funciona da mesma maneira ...)Respostas:
Há uma postagem Stack Overflow de cerca de um ano atrás, perguntando algo semelhante ( esta postagem ).
O principal motivo é como
inet_aton()
( página de manual ) converte os octetos no endereço binário.Isso não é definido pelo POSIX.anything - mas está disponível amplamente.
fonte
É uma relíquia dos velhos tempos do discurso de classe.
127.1
significa rede127
, host1
. (E, sim,127.257
é legal porque a rede127
pode ter mais de 256 hosts.fonte