Помогите найти скрипт php proxy scanner. Сдесь http://secureslash.com/security-tools/socks-proxy-scanner-php-script/ есть Socks Proxy Scanner PHP Script, но он видимо не пашет. HELP ME!
Это собственно так называемый чекер прокси. И он полностью работает вот подправил и немного добавил коментов что-бы тебе было понятно. PHP: <?php /* Переведено iron-viper for ANTICHAR.RU */ $filename = "filename.txt"; //здесь пишем путь до файла в котором будут лежать прокси вида IP:port $rel=file_get_contents($filename); // "парсим" файл-лист с проксями указанный выше $ipset = explode("\n",$rel); // делаем выборку(чтение) из того что выбрали foreach($ipset as $ips) { $ipandport=explode(':',$ips); //Так как в листе прокси вида 123.156.189.112:8080 то разбиваем значения(строки) на IP и порты $host=$ipandport[0]; $i=(int)$ipandport[1]; $fp = @fsockopen("tcp://".$host,$i,$errno,$errstr,10); // открываем сокет и стукаем в адрес прокси по указанному порту if($fp) { echo("Результат $fp "); echo ("port " . $i . " открыт по адресу" . $host . "<br>"); fclose($fp); } flush(); } ?> Инструкция: в файл "filename.txt" к примеру записываем прокси в виде: 83.65.203.130:8080 81.63.140.37:3128 60.191.73.186:8080 129.69.210.96:3124 сохраняем и кидаем рядом со скриптом, далее запускаем скрипт и он сканит эти прокси. На сервере где запускаешь скрипт должна быть поддержка сокетов. Можно еще передописать скрипт чтобы он результаты сохранял и бла бла, но я ответил на твой вопрос думаю.
немного доделал чтоб сканил по диапазону нужно создать good.txt с chmod 777 PHP: <form action="<?= $PHP_SELF?>" method="post"> ОТ : <input type=text name=ot> ДО : <input type=text name=do> ПОРТ : <input type=text name=port size=2> Timeout : <input type=text name=timeout size=2 value="10"><br /> Удалить из good.txt старые прокси <input type=checkbox name=del_old checked> <input type=submit name=submit value="check"> </form> <? if ($_POST['ot']!="" && $_POST['do']!="" && $_POST['port']!="") { if ($_POST['del_old']=="on") { $fd=fopen("good.txt","w"); @fputs($fd,""); fclose($fd); } $ot=$_POST['ot']; $do=$_POST['do']; $timeout=$_POST['timeout']; $port=$_POST['port']; preg_match("/([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})/",$ot,$ott); preg_match("/([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})/",$do,$doo); $i=0; while($i!=1) { if ($ott[4]>256){$ott[4]=0;$ott[3]++;} if ($ott[3]>256){$ott[3]=0;$ott[2]++;} if ($ott[2]>256){$ott[2]=0;$ott[1]++;} if ($ott[1]==$doo[1] && $ott[2]==$doo[2] && $ott[3]==$doo[3] && $ott[4]==$doo[4]) {$i=1;} $host="$ott[1].$ott[2].$ott[3].$ott[4]"; $fp = @fsockopen("tcp://".$host,$port,$errno,$errstr,$timeout); if($fp) { $ff=fopen("good.txt","a+"); @fputs($ff,$host.":".$port."\r\n"); fclose($fp); fclose($ff); } flush(); $ott[4]++; } if ($i==1) { echo "GOOD: <br />"; require("good.txt"); } } ?>
И че он сканит? То есть понятно что задумка -диапазон, но ты порбывал сканить? Я два раза поюзал, првый он сказал что в диапазоне из 10 адресов на порт 80, открыты все. Чего быть не может. Во втором на диапазон 30 он вообще ничего не показал. Короче Бэд.
проверил щас на 61.235.0.20 61.235.0.30 1080 записало в файл правильно , но чет не вывело правдо в браузер upd: немного исправил вывод вроде норм выводит терь
PHP: <?php #check only socks5 $ip_adress = '127.0.0.1-127.0.0.254'; $ports = array('9050','1010'); list($ip_begin, $ip_end) = explode('-', $ip_adress); for($i = ip2long($ip_begin); $i < ip2long($ip_end); $i++) { foreach($ports as $port) check_socks5(long2ip($i), $port); } function check_socks5($socks_ip, $socks_port) { $socket = fsockopen($socks_ip, $socks_port); if($socket) { $auth = pack ('H*', '050100'); // 05 - версия протокола, 01 - метод запроса (CONNECT), 00 - без аутентификации fwrite ($socket, $auth); $read = fread($socket, 2); if (bin2hex($read) == '0500') echo $socks_ip.':'.$socks_port.' - Good <br/>'; else echo $socks_ip.':'.$socks_port.' - Bad or Authorization Required <br/>'; fclose($socket); } else print 'Host down <br/>'; } ?>