微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php实现的ping端口函数实例

本文实例讲述了PHP实现的ping端口函数分享给大家供大家参考。

具体实现代码如下:

代码如下:
PHP /* * @author xujiajay * @date 2010-10-7 * @function 可以ping端口的PHP函数 * */ error_reporting(E_ERROR); header("content-Type: text/html; charset=utf-8"); set_time_limit(120); $host = isset($_POST['url']) ? chop(str_replace('http://','',$_POST['url'])) : 'www.baidu.com'; $port = isset($_POST['duankou']) ? chop($_POST['duankou']) : '80'; $num = 10; function microtime_float() { list($usec,$sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } function getsoft($host,$port) { $fp = @fsockopen($host,$port,&$errno,&$errstr,3); if(!$fp) return 'unkNown'; $get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnection: Close\r\n\r\n"; @fputs($fp,$get); $data = ''; while ($fp && !feof($fp)) $data .= fread($fp,1024); @fclose($fp); $array = explode("\n",$data); $k = 2; for($i = 0;$i < 20;$i++) { if(stristr($array[$i],'Server')){$k = $i; break;} } if(!stristr($array[$k],'Server')) return 'unkNown'; else return str_replace('Server','服务器软件',$array[$k]); } function ping($host,$port) { $time_start = microtime_float(); $ip = gethostbyname($host); $fp = @fsockopen($host,1); if(!$fp) return 'Request timed out.'."\r\n"; $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'; } if(isset($_POST['url']) && isset($_POST['duankou'])) { echo ''; echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:'."\r\n"; ob_flush(); flush(); for($i = 0;$i < $num;$i++) { echo ping($host,$port); ob_flush(); flush(); sleep(1); } } ?>

希望本文所述对大家的PHP程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐