Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Нужен скрипт php proxy scanner HELP ME! (https://forum.antichat.xyz/showthread.php?t=76397)

mff 08.07.2008 04:05

Нужен скрипт php proxy scanner HELP ME!
 
Помогите найти скрипт php proxy scanner. Сдесь http://secureslash.com/security-tool...er-php-script/ есть Socks Proxy Scanner PHP Script, но он видимо не пашет. HELP ME! :confused:

iron-viper 08.07.2008 11:05

Это собственно так называемый чекер прокси.
И он полностью работает вот подправил и немного добавил коментов что-бы тебе было понятно.

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

сохраняем и кидаем рядом со скриптом, далее запускаем скрипт и он сканит эти прокси.

На сервере где запускаешь скрипт должна быть поддержка сокетов.

Можно еще передописать скрипт чтобы он результаты сохранял и бла бла, но я ответил на твой вопрос думаю.

5triker 08.07.2008 16:57

немного доделал чтоб сканил по диапазону
нужно создать 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");
}
}
?>


iron-viper 08.07.2008 17:22

И че он сканит? То есть понятно что задумка -диапазон, но ты порбывал сканить?

Я два раза поюзал, првый он сказал что в диапазоне из 10 адресов на порт 80, открыты все. Чего быть не может.

Во втором на диапазон 30 он вообще ничего не показал. Короче Бэд.

5triker 08.07.2008 17:48

проверил щас на 61.235.0.20 61.235.0.30 1080
записало в файл правильно , но чет не вывело правдо в браузер

upd: немного исправил вывод вроде норм выводит терь

mff 09.07.2008 19:43

5triker, работает, но он только socks почему то ищет... :D

GanjaKyp 06.07.2009 19:58

а есть какое нибудь проф. решение этой задачи?? чтоб сканить именно по диапозону

shellz[21h] 07.07.2009 21:35

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($socket2);
        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/>';
  }


?>



Время: 06:26