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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   PHP Proxy Scanner by Jackh4xor (https://forum.antichat.xyz/showthread.php?t=93126)

mff 23.11.2008 14:41

PHP Proxy Scanner by Jackh4xor
 
Гуры, требуется ваша помощь, есть вот такой скрипт, хвалят его на америкосовских сайтах, но почемуто он не работает, тупо белый экран :confused: Пробывал на Agave и на localhost :confused: HELP!!!
PHP код:

<?

##############################################
#       php proxy scanner- by Jackh4xor
#       j4ckh4xor [at ]gmail [.com]
##############################################
##############################################
## ##
## USAGE ##
## ##
## //TEST IP AND DEFINED PORT ##
## PSCAN.PHP?IP=<IP>&PORT=<PORT> ##
## ##
## ##
## //SCAN IP (ports 80 - 65200) ##
## PSCAN.PHP?IP=<IP>&SCAN=TRUE ##
## ##
## ##
##############################################
## ##
## TESED ON WINDOWS PHP5 & APACHE 2 ##
## UNTESTED ON NIX BUT SHOULD WORK ##
## ##
##############################################
## ##


set_time_limit(0);

$_port $_GET['PORT'];
$_ip $_GET['IP'];
$_scan $_GET['SCAN'];
$Query $_GET['q'];


function 
Port_Check($host$port)
{
if (isset(
$host) && isset($port)) {
$i=(int)$port;
$fp = @fsockopen("tcp://".$host,$i,$errno,$errstr,10);

if(
$fp) { $res TRUE; } else { $res FALSE; }

} else {
$res FALSE;
}
return 
$res;
}

function 
getmicrotime() ## USED IN PING
{
list (
$usec$sec) = explode(" "microtime());
return ((float)
$usec + (float)$sec);
}


function 
Sockcheck($host,$port,$type)
{
$Response '..GOODCON..';

$ch curl_init();


curl_setopt($chCURLOPT_URL"http://".$_SERVER['SERVER_NAME']."".$_SERVER['PHP_SELF']."?q=true");
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_CONNECTTIMEOUT10);
curl_setopt($chCURLOPT_TIMEOUT10);
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
curl_setopt($chCURLOPT_USERAGENT,'[DB]');

curl_setopt($chCURLOPT_PROXY$host.":".$port);
if(
$type == "4"curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_SOCKS4);
else if(
$type == "5"curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_SOCKS5);

$mk_time getmicrotime();

$SOCKGOOD FALSE;
$html curl_exec($ch);
if(
stristrtrim($html) , $Response )) {
$SOCKGOOD TRUE;
} else {
$SOCKGOOD FALSE;
}


if (
$SOCKGOOD == TRUE) {
$Proxy_Ping trim(Round(((getmicrotime()-$mk_time) * 1000),0));
$res "(".$port.") <font color=green>Open</font> : SOCK ".$type." Proxy Found <font color=";

if (
$Proxy_Ping 500) { $res .= 'green'; }
elseif (
$Proxy_Ping 1000) { $res .= 'orange'; }
else { 
$res .= 'red'; }

$res .= sprintf("> %s </font>ms<br>"$Proxy_Ping);
} else { 
$res "(".$port.") <font color=green>Open</font> : No SOCK ".$type." Proxy Found<br>"; }

curl_close ($ch);
unset(
$ch);
return 
$res;
}


function 
HTTPProxy_Test($IP$Port)
{
$Response '..GOODCON..';

$fp fsockopen($IP, (int)$Port$errno$errstr10);
if (!
$fp) {
$res "$errstr ($errno)<br />\n";
} else {
$mk_time getmicrotime();

$out "GET http://".$_SERVER['SERVER_NAME']."".$_SERVER['PHP_SELF']."?q=true HTTP/1.0\r\n";
$out .= "User-Agent: [DB]\r\n";
$out .= "Connection: Close\r\n";
$out .= "Pragma: no-cache\r\n";
$out .= "Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7\r\n";
$out .= "Cache-Control: no\r\n";
$out .= "Accept-Language: en;q=0.7,en-us;q=0.3\r\n";
$out .= "\r\n";

fwrite($fp$out);

$HTTPGOOD FALSE;
while (!
feof($fp)) {
$fptmp fgets($fp128);

if( 
stristrtrim($fptmp) , $Response ) ) { $HTTPGOOD TRUE; BREAK; }

}

if (
$HTTPGOOD == TRUE) {
$Proxy_Ping trim(Round(((getmicrotime()-$mk_time) * 1000),0));
$res "(".$Port.") <font color=green>Open</font> : HTTP Proxy Found <font color=";

if (
$Proxy_Ping 500) { $res .= 'green'; }
elseif (
$Proxy_Ping 1000) { $res .= 'orange'; }
else { 
$res .= 'red'; }

$res .= sprintf("> %s </font>ms<br>"$Proxy_Ping);
} else { 
$res "(".$Port.") <font color=green>Open</font> : No HTTP Proxy Found<br>"; }


fclose($fp);
}
return 
$res;
}


function 
scanPorts($host$pfrom$pto$delay)
{
$res;
for (
$i $pfrom-1$i <= $pto$i++) {

$res[$i]['RES'] = 0;

if (
Port_Check($host$i)) {
$re[$i]['RES'] = 1;
$res[$i]['HTTP'] = HTTPProxy_Test($host$i);
$res[$i]['SOCK4'] = Sockcheck($host$i,4);
$res[$i]['SOCK5'] = Sockcheck($host$i,5);
} else {
$res[$i]['RES'] = 0;
$res[$i]['C'] = '('.$i.') <font color=red>Closed</font> : Unable to test... <br>';
}

sleep($delay);
}
return 
$res;
}


if (isset(
$_ip)) {
if (isset(
$_scan)) {
$mk_time getmicrotime();
$pt scanPorts($_ip,80,65200,2);

echo 
"Scanning ".$_ip." .....<br>";

foreach(
$pt as $tport => $tres)
{
if (
$tres['RES'] == 1) {

echo 
"-- ".$tres['HTTP'];
echo 
"-- ".$tres['SOCK4'];
echo 
"-- ".$tres['SOCK5'];

//else { echo "- ".$tres['C']; } //uncomment to show closed ports as well
}

$Proxy_Ping trim(Round(((getmicrotime()-$mk_time)),0));
echo 
"<br>Scanned in ".$Proxy_Ping."Secs<br>";

}
if (isset(
$_port)) {
if (
Port_Check($_ip,$_port) == TRUE) {
echo 
"Scanning ".$_ip." .....<br>";
echo 
HTTPProxy_Test($_ip$_port);
echo 
Sockcheck($_ip$_port,4);
echo 
Sockcheck($_ip$_port,5);
}
}
}

if (isset(
$Query)) {
$Response '..GOODCON..';
echo 
$Response;
}


?>


LEE_ROY 23.11.2008 15:02

в шапке напсано:
PSCAN.PHP?IP=<IP>&SCAN=TRUE
тоесть ты ему гетом даеш проксю, а он чекает )

mff 23.11.2008 15:13

Спасибо LEE_ROY!

eLWAux 23.11.2008 15:17

а так:
?ip=12.34.56.78&scan=true&q=1
виведет тебе єщо результат коннекта)

ТС, учить английский тебе надо))

Цитата:

## ##
## USAGE ##
## ##
## //TEST IP AND DEFINED PORT ##
## PSCAN.PHP?IP=<IP>&PORT=<PORT> ##
## ##
## ##
## //SCAN IP (ports 80 - 65200) ##
## PSCAN.PHP?IP=<IP>&SCAN=TRUE ##
## ##
## ##
PSCAN.PHP?IP=<IP>&SCAN=TRUE
просканирует ІР на порти 80 до 65200

PSCAN.PHP?IP=<IP>&PORT=<PORT>
просканить ІР на ПОРТ

mff 23.11.2008 15:35

А как сделать цикл, чтобы он сканил диапазон ip на несколько портов? Например
Цитата:

PSCAN.PHP?IP=120.1.1.1-120.255.255.255&PORT=80,8080,3128

rushter 23.11.2008 15:44

скрипт переписывать придется

vikseriq 23.11.2008 20:15

Цитата:

Сообщение от mff
А как сделать цикл, чтобы он сканил диапазон ip на несколько портов?

Пиши скриптец. Например:
PHP код:

for ($i 1$i<count($list); $i++){
 
system ('php /home/scr/PSCAN.PHP?IP=120.1.1.1-120.255.255.255&PORT='.$list[$i]);


$list - массив с портами
Прокси перебирать аналогично - циклом.

P3L3NG 23.11.2008 20:18

а у тя курл стоит на хосте?

vikseriq 23.11.2008 20:20

Наверное да, раз он спрашивает уже о диапазонах )
Иначе.. >:=)


Время: 10:41