Последний сегмент IP-адреса - PullRequest
0 голосов
/ 10 марта 2019

Я пишу утилиту проверки связи для проверки возможности подключения.У нас есть диапазон IP от XXX0 - XXX24

Ping X.X.X.08 - дает неизвестный хост

Ping X.X.X.008 - дает неизвестный хост

Ping X.X.X.8 - получает успешный ответ

Сколько цифр должно быть в последнем октете?

enter image description here


Но когда я пингую XXX007 или XXX07 или XXX7 работает,я получаю успешный ответ.

Может ли какой-то свет затенить то, что мне не хватает?

Ответы [ 2 ]

2 голосов
/ 10 марта 2019

Это почти полностью зависит от реализации вашего ping, но наиболее вероятной причиной является то, что 08 рассматривается как восьмеричное число, потому что оно начинается с 0.

И, поскольку действительные восьмеричные цифры ограничены 0..7, предполагается, что это не числовой IP-адрес, а вместо этого имя , которое нужно искать (в DNS для пример).

Это восьмеричное поведение может быть подтверждено (в Windows) следующей расшифровкой:

C:\Users\Pax> ping 192.168.1.061
Pinging 192.168.1.49 with 32 bytes of data:
Reply from 192.168.1.61: Destination host unreachable.
:

Похоже, что 061 трактуется как восьмеричное в первой строке выходных данных, начиная с 61<sub>8</sub> (6x8+1) = 49<sub>10</sub>. Последующие строки, хотя они утверждают, что проверяет адрес .61, являются ложными. Это потому, что это мой фактический компьютер, и, если я сделаю это без начального нуля, он будет работать нормально:

C:\Users\Pax>ping 192.168.1.61
Pinging 192.168.1.61 with 32 bytes of data:
Reply from 192.168.1.61: bytes=32 time<1ms TTL=128
:

Если восьмеричный бит содержит не восьмеричную цифру, это , когда он начинает жаловаться на сам хост, а не просто на недоступность (или, что еще хуже, пинг не на том компьютере):

C:\Users\Pax>ping 192.168.1.61
Pinging 192.168.1.61 with 32 bytes of data:
Reply from 192.168.1.61: bytes=32 time<1ms TTL=128
:

C:\Users\Pax>ping 192.0168.1.61
Ping request could not find host 192.0168.1.61.
    Please check the name and try again.
0 голосов
/ 10 марта 2019

Обычно не имеет значения, есть ли у вас XXX001, 0,01 или 0,1 для последнего октета.См. Мои результаты проверки связи на 192.168.0.1 и .01 и .001 => все они приводят к .1 ping results

...