Olsen 1 Опубликовано: 2004-10-03 13:55:01 Share Опубликовано: 2004-10-03 13:55:01 Нужен список украинских IP. Именно IP, а не сетей. Может кто знает где можно взять. Может есть какая-нибудь програмулинка перегоняющая файл с сетями в файл с IP. Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2004-10-04 03:32:16 Share Опубліковано: 2004-10-04 03:32:16 Скрипт на перле пишется 10 минут (максимум), делает это за минуту (тоже максимум Можешь скинуть мне список сетей на xor <бобик> elizovo.ru Я в ответ пришлю список ip адресов и сам скрипт. Ссылка на сообщение Поделиться на других сайтах
nn 7 Опубліковано: 2004-10-04 07:47:52 Share Опубліковано: 2004-10-04 07:47:52 И если не секрет, что делать потом с файлом, в котором больше 100 000 строк? Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2004-10-04 10:48:04 Share Опубліковано: 2004-10-04 10:48:04 И если не секрет, что делать потом с файлом, в котором больше 100 000 строк? Бери выше - больше миллиона =)) Наверное отдать на вход nmap'у.... )) Кстати, вот сам скрипт: #!/usr/local/bin/perl while ($line = <STDIN>) { # Убираем символ конца строки chomp $line; # Разделяем сеть на цЫфырки и длинну маски подсети или берем следующую запись ($a, $b, $c, $d, $mask) = $line =~ /(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})[\/\\\:]+(\d{1,2})/ or next; # Создаем число, которое и является на самом деле ip-адресом в десятичной записи $ip = ($a << 24) + ($b << 16) + ($c << 8) + $d; # Получаем начальное число, которое послужит основой для создания других адресов $begin = ($ip >> 32 - $mask) << 32 - $mask; # Количество компов в сети при данной маске $offset = 2 ** (32 - $mask) - 1; foreach $n (1..$offset) { # Получаем ip-адрес в десятичной записи $num = $begin + $n; # Получаем первое число в десятичной записи $a = $num >> 24; # Получаем первую цЫфру, обозначающую первые 8 байт $a1 = $a << 24; # Получаем второе число в десятичной записи $b = ($num - $a1) >> 16; # Получаем вторую цЫфру, обозначающую вторые 8 байт $b1 = $b << 16; # Получаем третье число в десятичной записи $c = ($num - $a1 - $b1) >> 8; # Получаем третью цЫфру, обозначающую третьи 8 байт $c1 = $c << 8; # Получаем четвертую цЫфру, обозначающую последние 8 байт $d = $num - $a1 - $b1 - $c1; # Пропускаем итерацию, если последняя цЫфра равна 0 или 255 next if($d == 0 or $d == 255); # Вывод на выход aka в stdout print STDOUT "$a.$b.$c.$d\n"; } # Для контроля за процентом выполненности задания, сообщения посылаются не в stdout print STDERR "$line - done\n"; } Скрипт сделан в консольном варианте. Поэтому запускать можно так: ./скрипт < файл_с_сетями > файл_с_ип_адресами или так: cat | ./скрипт > файл_с_ип_адресами и вставлять/писать(:-) адреса (ну и Ctrl+D в конце нажать Это так... в качестве ликбеза на всякий случай =)) Доделать этот скрипт до работы с cgi, я думаю, люди смогут, кому понадобится. Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2004-10-04 10:55:52 Share Опубліковано: 2004-10-04 10:55:52 О! Чуть не забыл сказать. Во первых, чтоб он выполнялся, разрешите ему выполняться (chmod +x скрипт) Во вторых, если он не захочет выполняться, возможно у вас нет программы перла по адресу /usr/local/bin/perl Поэтому посмотрите, где он у вас (which perl). Либо можете написать #!/usr/bin/perl В 99 из 80 возможных % должно заработать =) Если и тут не заработает, то тут я не смогу ничего сказать кроме rtfm perl + rtfm *nix =)) Ссылка на сообщение Поделиться на других сайтах
nn 7 Опубліковано: 2004-10-04 18:16:21 Share Опубліковано: 2004-10-04 18:16:21 И если не секрет, что делать потом с файлом, в котором больше 100 000 строк? Бери выше - больше миллиона =)) Наверное отдать на вход nmap'у.... )) А не подавится? Предлагаю в национальных цветах распечатать и использовать как обои. -) Ссылка на сообщение Поделиться на других сайтах
Beatle 0 Опубліковано: 2004-10-04 18:49:39 Share Опубліковано: 2004-10-04 18:49:39 Предлагаю в национальных цветах распечатать и использовать как обои. -) ГЫГЫГЫ Поддерживаю!!! А подсунуть он их скорее всего ЮзерГейту хочет!!! -) Тот точно удавиться!!! :tongue: Сдается мне любая програмулина таким списком удавиться, и не уверен что редактор какой-нить такое откроет!!! -) Ссылка на сообщение Поделиться на других сайтах
Константин 0 Опубліковано: 2004-10-19 14:35:50 Share Опубліковано: 2004-10-19 14:35:50 Предлагаю в национальных цветах распечатать и использовать как обои. -) ГЫГЫГЫ Поддерживаю!!! А подсунуть он их скорее всего ЮзерГейту хочет!!! -) Тот точно удавиться!!! :tongue: Сдается мне любая програмулина таким списком удавиться, и не уверен что редактор какой-нить такое откроет!!! -) Ну можно подсунуть базе данных, та не удавиться. MySql простые записи на 2 лимона реагирует примерно за 0.75 секунды. Ссылка на сообщение Поделиться на других сайтах
Константин 0 Опубліковано: 2004-10-19 14:39:58 Share Опубліковано: 2004-10-19 14:39:58 Нужен список украинских IP. Именно IP, а не сетей.Может кто знает где можно взять. Может есть какая-нибудь програмулинка перегоняющая файл с сетями в файл с IP. Если для проверялки использовать то может лучше так? : #!/usr/bin/perl my $ip=shift; print "IP-address $ip is "; print "not " unless (&ukr_ip($ip)); print "ukrainian\n"; exit; sub ukr_ip { my $uaddr=shift; map { my ($oaddr,$mask)=split/\//,$_; my $poaddr=unpack("L",pack("C4",(split (/\./, $oaddr)))); my $puaddr=unpack("L",pack("C4",(split (/\./, $uaddr)))); my $pmask=unpack("L",pack("B32",(1 x $mask))); return 1 if (($puaddr & $pmask)==($poaddr & $pmask)); }(<DATA>); return 0; } __DATA__ 62.16.0.0/19 62.64.64.0/18 Ну и дальше сети Ссылка на сообщение Поделиться на других сайтах
S_ergey 21 Опубліковано: 2004-10-19 21:13:32 Share Опубліковано: 2004-10-19 21:13:32 А кто пробовал подсунуть 2 старгазеру етот список он продолжает работать нормально? Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2004-10-20 02:30:31 Share Опубліковано: 2004-10-20 02:30:31 Нужен список украинских IP. Именно IP, а не сетей.Может кто знает где можно взять. Может есть какая-нибудь програмулинка перегоняющая файл с сетями в файл с IP. Если для проверялки использовать то может лучше так? : Может. Но человеку нужен был список а не проверялка. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас