192.168.072へのpingが192.168.0.58からの応答を返す理由

IPアドレスにタイプミスをすると、一見すると結果がおかしくなります。 たとえば、192.168.72へのpingは192.168.0.72として認識され、192.168.072はすでに192.168.0.58として認識されます。



ここでは、RFC、IPクラスなどが異なるため、人々は複雑すぎます。 いくつかのテストを実行して、 ping



コマンドが入力値をどのように解析するかを確認してください。



ping
 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:
      
      





ご覧のとおり、 ping



コマンド(Windows)では、さまざまなアドレス形式を使用できます。 IPv4アドレスは、 ABCD



4つの部分(オクテット)に分割できますping



コマンドでは、すべての部分を指定せずに、次のアルゴリズムを使用して空白を埋めることができます。



 1  (ping A) : 0.0.0.A 2  (ping AB) : A.0.0.B 3  (ping ABC) : AB0.C 4  (ping ABCD) : ABCD
      
      





1つの部分のみを指定すると、上記のアルゴリズムに従ってオクテットとして認識されます。 255を超える場合、値は変換されて次のフィールドに転送されます。



いくつかの境界線のケースがあります。 たとえば、4オクテット以上を指定すると、そのようなアドレスはまったく認識されません。 そのため、 google.com



IPアドレスは0.74.125.226.4



または74.125.226.4.0



いずれでも0.74.125.226.4



ません。



16進表記を使用することもできます。これは、ドットによるオクテット区切りと分割なしの両方を使用できます。 最初のケースでは、各オクテットの前に0x



値が必要です。2番目のケースでは、アドレス全体の前にプレフィックス0x



示されます。 8進法では、プレフィックス0



指定されます。



したがって、IPアドレス(IPv4)を表すには多くの方法があります。 ドットなし、またはドットあり(2ドット、3ドット、または1ドット)で記述でき、それぞれの場合に異なる形式の表記法(10進数、16進数、8進数)を使用できます。 異なるオクテットの同じアドレスに混在させることもできます。 たとえばgoogle.com



次の方法でgoogle.com



記録できます。



google.com



(ドメイン名)

74.125.226.4



(ピリオド付きの10進表記)

1249763844



1249763844



なしの10進数)

0112.0175.0342.0004



(ドット付き8進数)

011237361004



(ドットなしの8進数)

0x4A.0x7D.0xE2.0x04



(ドット付きの16進数)

0x4A7DE204



(ドットなしの16進数)

74.0175.0xe2.4



(ಠ_ಠ)

(バイナリ記録もサポートされていないことを神に感謝します!)



この場合、192.168.072へのpingは上記のテーブルの3番目のオプション(AB0.C)を使用するため、実際にはアドレスは192.168.0.072に変換されます。 ただし、最後のオクテットはゼロから始まるため、8進数値として扱われます。10進数では58に対応します。



謎は解決されました。



ping



for Windowsはこのようなさまざまな形式をサポートし、それらを正しく解釈しますが、これらの形式がどこでも使用できることを必ずしも意味しないことに注意してください。 4つのオクテットすべてを入力する必要があるプログラムもあれば、1つのアドレスに8進値と10進値を混在させることを禁止するプログラムなどもあります。



All Articles