Автор Тема: Бинарные данные  (Прочитано 3368 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GunJah

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарные данные
« : 30 Мая 2005, 16:29:05 »
Заранее сорри если ответ на вопрос из разряда rtfm, я отнюдь не ленивый...

Задача следующая, нужно IP адрес х.х.х.х перевести в бинарик на каждое число ограниченное точкой по одному байту... Ту бишь из Ай-Пишника заданного строкой нужно сделать 4-байтный бинарик...
Расколотил Ай-Пишник split-ом на 4 части и возился с функциями pack и unpack, но че-то не получается...
Мож не так че делаю...
И вообще как из string-а правильно сделать binary ?
Заранее спасибо :rolleyes:


Да и еще вопросик на другую тему (сорри за оффтоп), мож есть у кого пример скрипта на Перлосе аплоада файла на вэб ?

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Бинарные данные
« Ответ #1 : 30 Мая 2005, 16:45:29 »
по первому: поиск по форуму по слову "long"
по второму: бегом читать faq. он тут прилеплен в форуме
0 OK, 0:1

Оффлайн GunJah

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарные данные
« Ответ #2 : 30 Мая 2005, 17:17:29 »
1. Нашел только IP to Int, а мне надо IP в бинар, ту бишь 4  байта - 32 бита 0 или 1. И все это на перлосе, а не на php.

2. Читал. Я по-этому и спросил, что уже порылся в скриптах и обе ссылки там на аплоад дохлые :(

http://www.webscript.ru/scripts/Perl/Raznoe/
http://www.webscript.ru/cgi-bin/jump.cgi?ID=359

http://www.webscript.ru/scripts/Perl/Upravlenie/
http://www.webscript.ru/cgi-bin/jump.cgi?ID=86

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Бинарные данные
« Ответ #3 : 30 Мая 2005, 17:23:10 »
perldoc Net::IP ?
The documentations is your friend

Оффлайн GunJah

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарные данные
« Ответ #4 : 30 Мая 2005, 18:30:02 »
Дико извиняюсь, прочел внимательнее FAQ и конечно нашел аплоад, еще раз куча извинений :)

2 NeoNox
Большое спасибо, помогло, хороший модуль...

И все же, если не затруднит, не мог бы кто-нить дать пример, как обычную текстовую строку перевести в бинар (0 и 1) и обратно с помощью pack unpack...

Оффлайн Ivan Kolesnikov

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 39
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарные данные
« Ответ #5 : 31 Мая 2005, 07:52:11 »
Вот способ, правда без pack и unpack, а просто циклом:

sub ip2dec {
  my $dec = 0; my $ip = $_[0]; my @s = split(/\\./, $ip);
  for (my $i=3; $i>=0; $i--) {$dec += 256**(3-$i) * $s[$i]}
  return $dec;
}

sub dec2ip {
  my $ip = \'\'; my $dec = $_[0]; my $s;
  for (my $i=3; $i>=0; $i--) {$s = int($dec / 256**$i); $ip .= $s.\'.\'; $dec -= $s * 256**$i}
  $ip  =~ s/\\.+$//g;
  return ($ip);
}

 

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