The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
аналог функции long2ip, !*! DenisK, 26-Июл-05, 10:32  [смотреть все]
На php есть функция long2ip для преобразования десятичного формата IP адреса в 4-х байтный.
Есть ли такая функция на perl?
  • аналог функции long2ip, !*! butcher, 10:42 , 26-Июл-05 (1)
    >На php есть функция long2ip для преобразования десятичного формата IP адреса в
    >4-х байтный.
    >Есть ли такая функция на perl?

    inet_ntoa

  • аналог функции long2ip, !*! ihor, 11:25 , 26-Июл-05 (6)
    sub long2ip {
        my($num) = @_;
        my(@res, $n);
        
        while (scalar(@res) < 4) {
            $n = $num % 1000;
            if ($n < 256) {
                unshift(@res, $n);
                $num = $num / 1000;
            } else {
                unshift(@res, $num % 100);
                $num = $num / 100;
                
            } # if
        } # while
        return \@res;
    } # sub
    # =============================================
    sub printIP {
        my($ip) = @_;
        print(join('.', @{$ip}), "\n");
    } # sub
    # =============================================
    # test
    printIP(long2ip(174073896));
    printIP(long2ip(0));
    printIP(long2ip(211));

    • аналог функции long2ip, !*! Виталий email vp7mail.ru, 16:20 , 23-Янв-07 (8)
      Всё просто как 5 копеек:

      sub ip2long {
          return unpack("N",inet_aton(shift));
      }

      sub long2ip {
          return inet_ntoa(pack("N",shift));
      }

      Используется в моих скриптах, проверено на калькуляторе - великолепно работает :)

      p.s. используется к примеру так:
      print ip2long("213.18.6.5");




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру