本文实例讲述了php实现的ping端口函数。分享给大家供大家参考。
具体实现代码如下:
<br /><?php<br />/*<br /> * @author xujiajay<br /> * @date 2010-10-7<br /> * @function 可以ping端口的php函数<br /> *<br /> */<br /> error_reporting(E_ERROR);<br /> header("content-Type: text/html; charset=utf-8");<br /> set_time_limit(120);<br /> $host = isset($_POST['url']) ? chop(str_replace('http://','',$_POST['url'])) : 'www.baidu.com';<br /> $port = isset($_POST['duankou']) ? chop($_POST['duankou']) : '80';<br /> $num = 10;<br /> function microtime_float()<br /> {<br /> list($usec, $sec) = explode(" ", microtime());<br /> return ((float)$usec + (float)$sec);<br /> }<br /> function getsoft($host,$port)<br /> {<br /> $fp = @fsockopen($host,$port,&$errno,&$errstr,3);<br /> if(!$fp) return 'unknown';<br /> $get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnection: Close\r\n\r\n";<br /> @fputs($fp,$get);<br /> $data = '';<br /> while ($fp && !feof($fp))<br /> $data .= fread($fp, 1024);<br /> @fclose($fp);<br /> $array = explode("\n",$data);<br /> $k = 2;<br /> for($i = 0;$i < 20;$i++)<br /> {<br /> if(stristr($array[$i],'Server')){$k = $i; break;}<br /> }<br /> if(!stristr($array[$k],'Server')) return 'unknown';<br /> else return str_replace('Server','服务器软件',$array[$k]);<br /> }<br /> function ping($host,$port)<br /> {<br /> $time_start = microtime_float();<br /> $ip = gethostbyname($host);<br /> $fp = @fsockopen($host,$port,&$errno,&$errstr,1);<br /> if(!$fp) return 'Request timed out.'."\r\n";<br /> $get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnection: Close\r\n\r\n";<br /> @fputs($fp,$get);<br /> @fclose($fp);<br /> $time_end = microtime_float();<br /> $time = $time_end - $time_start;<br /> $time = ceil($time * 1000);<br /> return 'Reply from '.$ip.': time='.$time.'ms';<br /> }<br /> if(isset($_POST['url']) && <strong style="color:transparent">来2源gaodaima#com搞(代@码&网</strong><label>搞gaodaima代码</label>isset($_POST['duankou']))<br /> {<br /> echo '<font color="#FF0000">'.getsoft($host,$port).'</font>';<br /> echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:'."\r\n";<br /> ob_flush();<br /> flush();<br /> for($i = 0;$i < $num;$i++)<br /> {<br /> echo ping($host,$port);<br /> ob_flush();<br /> flush();<br /> sleep(1);<br /> }<br /> }<br />?><br /><br />域名/IP:<input type="text" name="url" value="" size="50"> <br />端口:<input type="text" name="duankou" value="" size="10"> <br /><br /><br />
希望本文所述对大家的PHP程序设计有所帮助。