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

 

1 <?php
2 $host = 'www.baidu.com'; //要ping的地址,也可以是IP
3   $port = '80'; //要ping的端口
4 $num = 3;
5 function microtime_float()
6 {
7 list($usec, $sec) = explode(" ", microtime());
8 return ((float)$usec + (float)$sec);
9 }
10 function ping($host,$port)
11 {
12 $time_start = microtime_float();
13 $ip = gethostbyname($host);
14 $fp = @fsockopen($host,$port,&$errno,&$errstr,1);
15 if(!$fp) return 'replay time out!';
16 $get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnection: Close\r\n\r\n";
17 @fputs($fp,$get);
18 @fclose($fp);
19 $time_end = microtime_float();
20 $time = $time_end - $time_start;
21 $time = ceil($time * 1000);
22 return 'Reply from '.$ip.': time='.$time.'ms<br />';
23 }
24 echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:<br /><br />'."\r\n";
25 for($i = 0;$i < $num;$i++)
26 {
27 ping($host,$port);
28 sleep(1);
29 ob_flush();
30 flush();
31 }
32 ?>
33

 

 

posted @ 2010-12-01 11:04  luoine  阅读(5318)  评论(0编辑  收藏  举报