O manuseio do ping de endereços IPv4 incompletos é padrão? [duplicado]

2

Bati acidentalmente returnmuito cedo ao tentar pingum dispositivo, então, em vez de ping 10.111.12.4digitar

C:\Users\roadierich>ping 10.111

Pinging 10.0.0.111 with 32 bytes of data:
Request timed out.

Fiquei surpreso ao ver que o endereço IP foi expandido para preencher os octetos ausentes.

Após mais experiências, descobri:

ping 1       => ping 0.0.0.1
ping 1.2     => ping 1.0.0.2
ping 1.2.3   => ping 1.2.0.3
ping 1.2.3.4 => ping 1.2.3.4 (as expected)

Com base em testes superficiais, tracert

Eu pesquisei no google, mas não consigo encontrar nenhuma referência a esse comportamento. Esse é um padrão real, um padrão padrão implementado em todas as ferramentas que tomam um endereço IP como argumento ou é exclusivo do Windows?

Eu sei que no IPv6 é aceitável omitir cadeias de zeros consecutivos, mas os caracteres delimitantes ainda estão presentes.

RoadieRich
fonte
Sim; O comportamento é padrão. É o mesmo motivo pelo qual 0000:0000:0000:0000:0000:0000:0000:0001um endereço IPv6 é simplesmente :: 1. RFC 791 descreve todo o padrão IPv4, e por sua vez, explica a sua descoberta
Ramhound
@ Ramhound Onde o RFC 791 define as convenções da representação de endereço IP V4 textual, conforme apresentado pelo OP? A RFC 791 data de 1981. De 2003 a 2005, foi discutida a necessidade de padronização de notações . Além disso, outros efeitos, como a interpretação de zeros à esquerda como notação octal, também não têm relevância prática . Isso não parece apoiar seu argumento.
Execute o CMD
@ Ramhound Não consigo encontrar nada sobre omitir octetos no IPv4.
RoadieRich

Respostas:

0

Padrão? Não, se por "padrão" você quer dizer "é esperado que funcione globalmente dessa maneira".

Neste caso, a Microsoft estavam fazendo-nos um favor (intencionalmente, ou porque os autores "ping" do Windows acrescentou código extra porque eles queria).

De qualquer forma, há uma excelente resposta em https://superuser.com/a/486936 .

Christian Henry
fonte