Всем привет . Запостил в эту тему , так как в разделе - анонимность и безопасность врядли кто подскажет. Там мой вопрос , по поводу скрипта на Perl собирающего прокси и соксы с сайтов , затем их чекающий и сортирующий . https://forum.antichat.net/thread169321.html Куда смотреть ? Где смотрятся подробные описания ошибок от Perl ? Зарание спасибо за понимание , думаю скриптик и вам будет полезен .
В кратце по порядку: Открываешь текстовый файл и пишешь в нём код скрипта. Сохраняешь например под именем grub.pl и в консоли пишешь: perl grub.pl Если будут ошибки смотришь (в консоли) какая строка и какая ошибка. Всё, остаётся только исправить и юзать. Удачи
Code: #!/usr/bin/perl use strict; use warnings; use IO::Socket::INET; # SOCKS Proxy List Checker # Coded by sToRm # www.GoNullYourself.org # # Accepts proxy list in # 1.2.3.4:1111 format if ( @ARGV != 1 ) { print "Usage: $0 <file>\n"; exit(1); } open(PROXIES, "<$ARGV[0]") or die($ARGV[0].' wasn\'t found'); open(VALID, '>>valid.txt') or die('valid.txt isn\'t writable'); my ($connectable, $unconnectable, $invalid) = (0, 0, 0); while(<PROXIES>) { chomp($_); my $line = $_; if ($line =~ /([0-9]){1,3}\.([0-9]){1,3}\.([0-9]){1,3}\:([0-9]){1,5}/) { my @proxy = split(/:/, $line); my $SOCK = IO::Socket::INET->new ( PeerAddr => $proxy[0], PeerPort => $proxy[1], Timeout => 2, ); if ( $SOCK ) { print "[+] $line\n"; print VALID $line."\n"; ++$connectable; } else { print "[-] $line\n"; ++$unconnectable; } } else { print "[-] $line is invalid\n"; ++$invalid; } } my $total = $connectable + $unconnectable + $invalid; print "\nProxy list exhausted\n"; print "Connectable: $connectable\n"; print "Unconnectable: $unconnectable\n"; print "Invalid Lines: $invalid\n"; print "Total Checked: $total\n"; print "Working proxies saved to valid.txt\n"; Скрипт рабочий, проверил только что.
brunchik не делайте оверквоттинг. Скрипт рабочий, правда это не проверка на соксы, а проверка на то, открыт ли порт или нет.
вот еще простенький скрипт.. многопоточный. PHP: #!/usr/bin/perl -w #(c)dpe use LWP::UserAgent; use threads; use threads::shared; my @sites : shared; ############################### my $threads = 1; # Кол-во потоков my $proxy = 'proxy.txt';# Файл с награбленными прокси ############################### open (F, ">>$proxy") || die("Could not open ".$proxy." file!!!"); @sites = qw(http://fineproxy.ru/ http://hideme.ru/proxy-list/http/ http://hideme.ru/proxy-list/http-connect/ http://hideme.ru/proxy-list/socks4 http://hideme.ru/proxy-list/socks5/ http://www.proxydb.ru/ http://www.anonproxy.boom.ru/proxy.html http://spys.ru/ http://russianproxy.ru/proxy_list_http_fastest http://spys.ru/proxys/US/ ); for(0..$threads) {$trl[$_] = threads->create(\&Grab, $_);} for(@trl) { $_->join; } sub Grab { while (@sites){ my $site = shift @sites; my $ua = new LWP::UserAgent; $ua->timeout(30); my $data = $ua->get($site)->as_string; print "Grabbing proxys from: ".$site." ...\n"; while($data =~/(\d*\.\d*\.\d*\.\d*)\:(\d*)/msgi) { print F $1.":".$2."\n"; print $1.":".$2."\n"; } print "#############################\n"; } } close (F);
только это Code: /(d*.d*.d*.d*):(d*)/ заменить на Code: ~/(\d*\.\d*\.\d*\.\d*)\:(\d*)/ форум регулярку испортил..