URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6273
[ Назад ]

Исходное сообщение
"perl + netmask"

Отправлено uni , 19-Мрт-07 11:02 
Всем привет :)

$subj. Как в перле перевести netmask из десятичного формата в hex?
Самому писать неохота, наверняка что-то готовое есть, вот только отыскать не могу пока. Не поможете? :)

e.g. 255.255.255.192 -> 0xffffffc0

p.s. А может я что-то пропустил, и в Перле что-то "готовое" есть?

Спасибо!


Содержание

Сообщения в этом обсуждении
"perl + netmask"
Отправлено NuINu , 19-Мрт-07 11:25 
>Всем привет :)
>
>$subj. Как в перле перевести netmask из десятичного формата в hex?
>Самому писать неохота, наверняка что-то готовое есть, вот только отыскать не могу
>пока. Не поможете? :)
>
>e.g. 255.255.255.192 -> 0xffffffc0
>
>p.s. А может я что-то пропустил, и в Перле что-то "готовое" есть?
>
>
>Спасибо!
my $test_msk = "255.255.255.192";

if($test_msk =~ m/(\d{3}).(\d{3}).(\d{3}).(\d{3})/) {
  if(($1>255) or ($2>255) or ($3>255) or ($4>255)) {
     goto BAD_EXIT;
  }
  my $res = (($1*256+$2)*256+$3)*256+$4;
  print sprintf("0x%x\n", $res );



"perl + netmask"
Отправлено uni , 19-Мрт-07 11:28 
>>Всем привет :)
>>
>>$subj. Как в перле перевести netmask из десятичного формата в hex?
>>Самому писать неохота, наверняка что-то готовое есть, вот только отыскать не могу
>>пока. Не поможете? :)
>>
>>e.g. 255.255.255.192 -> 0xffffffc0
>>
>>p.s. А может я что-то пропустил, и в Перле что-то "готовое" есть?
>>
>>
>>Спасибо!
>my $test_msk = "255.255.255.192";
>
>if($test_msk =~ m/(\d{3}).(\d{3}).(\d{3}).(\d{3})/) {
>  if(($1>255) or ($2>255) or ($3>255) or ($4>255)) {
>     goto BAD_EXIT;
>  }
>  my $res = (($1*256+$2)*256+$3)*256+$4;
>  print sprintf("0x%x\n", $res );

Спасибо! :)


"perl + netmask"
Отправлено arto , 19-Мрт-07 12:08 
>Всем привет :)
>
>$subj. Как в перле перевести netmask из десятичного формата в hex?
>Самому писать неохота, наверняка что-то готовое есть, вот только отыскать не могу
>пока. Не поможете? :)
>
>e.g. 255.255.255.192 -> 0xffffffc0
>
>p.s. А может я что-то пропустил, и в Перле что-то "готовое" есть?
>
>
>Спасибо!

>perl -MList::Util=reduce -le "printf """%08x""",reduce { $a*256+$b } split """\\.""",$ARGV[0];" 255.255.255.192
ffffffc0
>


"use Socket; $hex=unpack('H16', inet_aton($ip));"
Отправлено A , 19-Мрт-07 12:23 
use Socket;
$hex=unpack('H16', inet_aton($ip));

"perl + netmask"
Отправлено Straus_Zloy , 22-Июн-10 22:31 
>[оверквотинг удален]
>$subj. Как в перле перевести netmask из десятичного формата в hex?
>Самому писать неохота, наверняка что-то готовое есть, вот только отыскать не могу
>пока. Не поможете? :)
>
>e.g. 255.255.255.192 -> 0xffffffc0
>
>p.s. А может я что-то пропустил, и в Перле что-то "готовое" есть?
>
>
>Спасибо!

$hex = sprintf '%02x' x 4, split '\.', $netmask ;