perl gethostbyname при заданном IP

Что произойдет, если IP-адрес неправильного формата задан для функции gethostbyname в perl? Один из наших сценариев вел себя странно, когда ему был присвоен неправильный формат IP (скажем, 1.1.1). При отладке обнаружил, что gethostbyname возвращал значение, например, при наличии 1.1.1. Есть ли какие-то мысли по этому поводу?... На мой взгляд, gethostbyname должен возвращать undef, верно?

2 ответа

В начале IPv4, до CIDR, считалось, что адреса состоят из сетевой части и хост-части. Части могут быть написаны независимо друг от друга в точечной десятичной форме, и их не нужно полностью разбивать на байты. Так 1.1 хост 1 в сети 1, эквивалентный 1.0.0.1 или вы также можете написать это как одно большое 32-битное число: 16777217. Было время, когда люди использовали такие URL, как http://16777127/ чтобы показать, насколько они умны. Это было разрушено, когда спаммеры начали делать это, чтобы обмануть фильтры.

Как-то, когда я пингую 1.1.1это идет к 1.1.0.1, Я бы догадался 1.0.1.1, Я не уверен, каково правило, чтобы решить, как именно это разбить.

Эти старые формы больше не поддерживаются (или даже не понимаются), но они не полностью выведены из всех инструментов и библиотек.

PS на моей первой попытке представить этот ответ, stackru сказал:

Ваше сообщение содержит ссылку на недействительный домен "16777127". Исправьте это, указав полный домен или поместив его в блок кода.

Что-то вроде того, что я имел в виду под "не широко поддерживается".

Числовые адреса IPv4 могут быть записаны как 1, 2, 3 или 4 числовых компонента. Каждый неконечный компонент представляет 8 бит (1 октет), а финальный представляет столько бит, сколько требуется для получения полного 32-битного адреса. Таким образом, следующие все представляют локальный адрес обратной связи:

2130706433
127.1
127.0.1
127.0.0.1

Каждый компонент может быть записан в десятичном, шестнадцатеричном или восьмеричном виде; таким образом, следующие все также кодируют один и тот же адрес

0x7f000001
127.0x01
0177.0.1
0x7f.0.0.1
Другие вопросы по тегам