«Стандартный» способ получить закодированную форму - inet_aton
, который обрабатывает точечные IP-адреса и имена хостов - но для чего он вам нужен?Чаще всего лучшей идеей является просто пропустить все низкоуровневые интерфейсы, которые имеют дело с такими вещами, и использовать, например, IO :: Socket.
Если вы хотите преобразовать в целое число , как вы говорите, а не в той форме, которую ожидают функции сокетов (они похожи в C, но не так в Perl), тогда вы можете пойти дальше и просто использовать pack
, пока вынепротиворечивы - часть, которая не переносима, является форматом, который принимают функции сокета.Например, unpack "N", pack "C4", split /\./, "1.2.3.4"
даст вам хорошее беззнаковое представление с прямым порядком байтов этого адреса (в виде числа 16909060 == 0x01020304
).