LINUX.ORG.RU

Perl hex to ip

 , ,


0

1

Доброго времени суток, нужна помощь.

Говнокодю на перле, есть ip адреса, которые я получаю в виде hex 32bit, например 0xc0a80202. Нужно перевести его в ip адрес вида DEC 8/8/8/8-bit, тоесть - 192.168.2.2. Как это сделать, в принципе понятно: 0a->192, 80->162, 02->2. Но вот как это сделать на перле, я что-то не очень представляю. Может, кто-то сталкивался с такой задачей и поделится примером? Мне кажется, должен быть какой-то относительно простой способ, либо модуль. Гугл выдал пару способов, но прикрутить их не вышло.

Спасибо.

★★

Пока остановился на таком способе:

$ex = hex($ex);
$ex = join '.', unpack('CCCC', pack('N', $ex));

Но, мне кажется он убогий и есть вариант красивее и проще.

nixit ★★
() автор топика
Ответ на: комментарий от nixit
#!/usr/bin/perl

use strict;
use warnings;
use 5.010;
use feature qw/say/;
use Socket qw/inet_ntoa/;

my $hex = pack 'N', '134744072';
say inet_ntoa($hex); # 8.8.8.8
joy4eg ★★★★★
()
Последнее исправление: joy4eg (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.