В моей сети есть сервер, известный по IP-адресу 10.0.0.15. Случайно я обнаружил, что команда: ping 10.0.15
приводит к
64 bytes from 10.0.0.15: icmp_seq=1 ttl=64 time=9.09 ms
... так что правильный сервер отвечает на пинг. Даже когда я пытаюсь: ping 10.15
я получаю сопоставимый результат. Кроме того, telnet к частичным адресам работает как ожидалось. Однако SSH не работает. Почему пакеты, отправленные на частичный адрес, попадают на правильный сервер?
Ответы:
Это разрешенная форма в соответствии с
inet_aton(3)
функцией docs:Например
Однако в наши дни было бы лучше использовать вместо них
getaddrinfo
илиinet_ntop
вызовы для поддержки IPv6. "Класс B" стал наследием еще в 1994 году или около того, теперь у нас есть CIDR и/24
...Эй, вы также можете дать ему большое старое число (но, пожалуйста, не надо)
(Это не может быть переносимо на другой Unix; в частности, OpenBSD не может разрешить 2130706433 ...)
источник
0
означает восьмеричное и0x
или0X
означает шестнадцатеричное, поэтому 010.020.030.040 - это адрес, обычно записываемый как 8.16.24.32 , Фишеры делали это, чтобы «скрыть» идентификационные данные хоста во вредоносных URL; Я не смотрел недавно, чтобы увидеть, если они все еще делают.