Задать вопрос
@nataku

Как команда ping преобразует адреса?

Как команда ping преобразует адреса?
Почему ping 127.127.327 ответ идёт от 127.127.1.71. Понятно, что идёт перенос части значения в другой октет, но не видел что бы это было чётко описано.
  • Вопрос задан
  • 338 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 2
fzfx
@fzfx
18,5 дм
127.127.327 - это одна из допустимых форм записи IPv4-адреса. число после последней точки может быть больше одного байта, если точек меньше трёх.
в принципе, можете хоть 2139029831 пинговать, эффект будет тот же.
ещё можете позабавиться с пингом 0177.127.1.71.
Ответ написан
Vamp
@Vamp
Описание алгоритма есть в документации к функции inet_ntoa, используемой командой ping.

The address supplied in cp can have one of the following forms:

....

a.b.c

Parts a and b specify the first two bytes of the binary address. Part c is interpreted as a 16-bit value that defines the rightmost two bytes of the binary address. This notation is suitable for specifying (outmoded) Class B network addresses.


То есть 327 трактуется как двухбайтовое целое. В битовом представлении это число выглядит так:
0000 0001 0100 0111
И далее оно делится на два октета - 0000 0001 и 0100 0111, что, соответственно, будет 1 и 71.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы