Просмотр полной версии : Нужен скрипт php proxy scanner HELP ME!
Помогите найти скрипт php proxy scanner. Сдесь http://secureslash.com/security-tools/socks-proxy-scanner-php-script/ есть Socks Proxy Scanner PHP Script, но он видимо не пашет. HELP ME! :confused:
iron-viper
08.07.2008, 11:05
Это собственно так называемый чекер прокси.
И он полностью работает вот подправил и немного добавил коментов что-бы тебе было понятно.
<?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
<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");
}
}
?>
iron-viper
08.07.2008, 17:22
И че он сканит? То есть понятно что задумка -диапазон, но ты порбывал сканить?
Я два раза поюзал, првый он сказал что в диапазоне из 10 адресов на порт 80, открыты все. Чего быть не может.
Во втором на диапазон 30 он вообще ничего не показал. Короче Бэд.
проверил щас на 61.235.0.20 61.235.0.30 1080
записало в файл правильно , но чет не вывело правдо в браузер
upd: немного исправил вывод вроде норм выводит терь
5triker, работает, но он только socks почему то ищет... :D
GanjaKyp
06.07.2009, 19:58
а есть какое нибудь проф. решение этой задачи?? чтоб сканить именно по диапозону
shellz[21h]
07.07.2009, 21:35
<?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/>';
}
?>
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot