php写的一个端口扫描器,有兴趣的同学可以研究一下.
<?php
$host = 'www.google.com'; //要ping的地址,也可以是IP
$port = '80'; //要ping的端口
$num = 3;
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function ping($host,$port)
{
$time_start = microtime_float();
$ip = gethostbyname($host);
$fp = @fsockopen($host,$port,&$errno,&$errstr,1);
if(!$fp) return 'replay time out!';
$get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnection: Close\r\n\r\n";
@fputs($fp,$get);
@fclose($fp);
$time_end = microtime_float();
$time = $time_end - $time_start;
$time = ceil($time * 1000);
return 'Reply from '.$ip.': time='.$time.'ms<br />';
}
echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:<br /><br />'."\r\n";
for($i = 0;$i < $num;$i++)
{
ping($host,$port);
sleep(1);
ob_flush();
flush();
}
?>