Sé que IPv6 permite omitir ceros consecutivos. ¿Pero qué hay de IPv4? No he encontrado ninguna referencia a esto en Internet, incluyendo Wikipedia y RFC 791 - Protocolo de Internet. Este documento sugiere que "los ceros iniciales se pueden omitir" en una dirección IPv4 (busque el término 'omitido'). No lo suficientemente específico.
Echa un vistazo a esta sesión de 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 ping como ssh entienden que 127.1 y 127.0.1 son lo mismo que 127.0.0.1. ¿Dónde se especifica esto?
ip-address
specifications
ipv4
Alexandre de Verteuil
fuente
fuente
ping 0.0.0.0
ping 0
Respuestas:
Hay una publicación de Stack Overflow de hace aproximadamente un año que pregunta algo similar ( esta publicación ).
La razón principal es cómo
inet_aton()
( página de manual ) convierte los octetos en la dirección binaria.POSIX no define esto, pero está disponible ampliamente.
fuente
Es una reliquia de los viejos tiempos del direccionamiento con clase.
127.1
significa red127
, host1
. (Y sí,127.257
es legal porque la red127
puede tener más de 256 hosts.fuente