Eu fui dar um ping no IP 192.168.0.72, e para minha surpresa, conectado a uma máquina em 192.168.0.58

Se eu ping 192.168.072 eu obtenha respostas dos 192.168.0.58.

Por que isso?

Eu estou em um PC Windows em um domínio do Windows.

Se eu pingue 192.168.72 eu recebo uma resposta do 192.168.0.72, então parece que a 0 em 072 (no meu erro inicial) é significativo.



perguntado 15 Out '13, 10:49

jenuscj's gravatar image

jenuscj ♦
3.9k137145181
taxa de aceitação: 57%


Uma Resposta:

Todo mundo está super complicado com RFCs, classes de IP, e tal. Basta fazer alguns testes para ver como o comando ping analisa a entrada de IP pelo usuário.

C:>ping 1 Pinging 0.0.0.1 with 32 bytes of data:

C:>ping 1.2 Pinging 1.0.0.2 with 32 bytes of data:

C:>ping 1.2.3 Pinging 1.2.0.3 with 32 bytes of data:

C:>ping 1.2.3.4 Pinging 1.2.3.4 with 32 bytes of data:

C:>ping 1.2.3.4.5 Ping request could not find host 1.2.3.4.5. Please check the name and try again.

C:>ping 255 Pinging 0.0.0.255 with 32 bytes of data:

C:>ping 256 Pinging 0.0.1.0 with 32 bytes of data:

Como você pode ver, o comando ping (no Windows) permite a utilização de diferentes formatos de endereços IP. Um endereço IPv4 pode ser dividido em quatro partes ("dotted-quad") assim: ABCD, eo comando ping permite que você deixe um pouco para fora, preenchendo um padrão de 0 a seguinte:

1 part (ping A) : 0.0.0.A 2 parts (ping A.B) : A.0.0.B 3 parts (ping A.B.C) : A.B.0.C 4 parts (ping A.B.C.D) : A.B.C.D

Se você apenas fornecer uma única peça, então se ele está sob 255 (o máximo para um octeto), ele é tratado como um octeto como acima, mas se for maior que 255, então ele é convertido e rolou para o próximo campo (ou seja, Mod 256).

Existem alguns casos extremos como o fornecimento de mais de quatro partes não parecem funcionar (por exemplo, ping IP google.com 's não vai funcionar para qualquer 0.74.125.226.4 ou 74.125.226.4.0).

Você também pode usar a notação hexadecimal, tanto na forma dotted-quad e plana, mas deve formatá-lo por 0x pré-pendente para cada octeto.

Então, há muitas maneiras de representar um (IPv4) endereço IP. Você pode usar o formato liso ou dotted-quad (ou pontilhada triplo, pontilhado-double, ou mesmo pontilhado single), e para cada um, você pode usar (ou mesmo misturar e combinar) decimal, octal e hexadecimal. Por exemplo, você pode executar ping google.com das seguintes formas:

google.com  (domain name)
74.125.226.4  (dotted decimal)
1249763844  (flat decimal)
0112.0175.0342.0004  (dotted octal)
011237361004  (flat octal)
0x4A.0x7D.0xE2.0x04  (dotted hex)
0x4A7DE204  (flat hex)
74.0175.0xe2.4  (ಠ_ಠ)

aplicação:

No seu caso, o ping 192.168.072 usa o terceiro formato na tabela acima (AB0.C), então você está realmente ping 192.168.0.072. Além disso, porque você tem um zero à esquerda na última parte, ele é tratado como octal, que em decimal é 58.

Mistério resolvido.

Note que enquanto o comando do Windows de ping permite uma tal variedade de formatos de entrada e interpreta os formatos não-padrão nos caminhos visto, isso não significa necessariamente que você pode usar esses formatos em todos os lugares. Alguns programas podem forçá-lo a fornecer todas as quatro partes de uma pontilhada quad, outros podem não permitir misturando e combinando decimal e octal, e assim por diante.

Além disso, o IPv6 resolve complicar ainda mais a lógica de análise e formato de aceitabilidade de entrada.

Espero que ajude.

link permanente

respondido 15 Out '13, 14:05

Criador's gravatar image

Criador
3.5k131828
taxa de aceitação: 84%

Sua resposta
trocar pré-visualização

Siga essa pergunta

Por Email:

Uma vez que você se logar você poderá se inscrever para qualquer atualização aqui

Pelo RSS:

Respostas

Respostas e Comentários

Básico do Markdown

  • *itálico* ou _itálico_
  • **negrito** ou __negrito__
  • link:[texto](http://url.com/ "título")
  • imagem?![alt texto](/path/img.jpg "título")
  • lista numerada: 1. Foo 2. Bar
  • para adicionar uma quebra de linha apenas adicione dois espaços no final da linha anterior.
  • Tags HTML básicas são permitidas

Tags de perguntas:

×63
×22
×4
×1

pergunta feita: 15 Out '13, 10:49

pergunta foi vista: 1,441 vezes

última atualização: 15 Out '13, 14:05