Программирование > Теория, алгоритмы и стандарты

перевод ip адреса в целое число(int).

(1/2) > >>

commander:
Интересует алгоритм перевода  ip адреса в целое число(int) не важно на каком языке...

предложения?

ondr:

--- Код: ---
my $int = ip2UL("192.168.0.1");

print $int, "\\n"; # 3232235521

my $ip = UL2ip($int);

print $ip, "\\n"; # 192.168.0.1


sub UL2ip
{
    my $int = shift;

    return join(".", unpack("C4", pack("N", $int)));
}

sub ip2UL
{
    my ($ip, $bin) = shift;

    $bin .= unpack("B8", pack("C", $_)) for split(/\\./, $ip);
#    $bin = join("", map {unpack("B8", pack("C", $_))} split(/\\./, $ip));
    return unpack("N", pack("B32", $bin));
}

--- Конец кода ---


Функцию ip2UL скорее всего можно оптимизировать, я уже не стал

commander:
ondr
это конечно... да... но хотелось всё же видеть универсальный алгоритм... без привязок к конкретным функциям конкретных языков программирования... :)

commander:
для примера:

192.168.0.1
y [x]
3 [192] 3 [168] 1 [0] 1 [1]

319231681011

где y - разряд числа, x -число...

Yukko:
http://php.spb.ru/php/ip.html
читаем, смотрим, какие арифметические дейсвия выполняются, пишем алгоритм. Там несложно!

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии