Показать сообщение отдельно

PHP Proxy Scanner by Jackh4xor
  #1  
Старый 23.11.2008, 14:41
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


По умолчанию PHP Proxy Scanner by Jackh4xor

Гуры, требуется ваша помощь, есть вот такой скрипт, хвалят его на америкосовских сайтах, но почемуто он не работает, тупо белый экран Пробывал на Agave и на localhost 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;
}


?>
 
Ответить с цитированием