PHP判断端口是否打开的代码


PHP #fsockopen2012-10-30 14:03
<?php
$host = 'yige.org'; //要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();
}
?>

相关文章

粤ICP备11097351号-1