加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现的ping端口函数实例

发布时间:2020-12-13 02:09:29 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:php实现的ping端口函数实例》要点: 本文介绍了PHP实例:php实现的ping端口函数实例,希望对您有用。如果有疑问,可以联系我们。 PHP学习 本篇章节讲解php实现的ping端口函数.供大家参考研究. 具体实现代码如下: 代码如下: ?php /* ?* @

《PHP实例:php实现的ping端口函数实例》要点:
本文介绍了PHP实例:php实现的ping端口函数实例,希望对您有用。如果有疑问,可以联系我们。

PHP学习本篇章节讲解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.1rnHost:".$host."rnConnection: Closernrn";
??????????? @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.'."rn";
??????????? $get = "GET / HTTP/1.1rnHost:".$host."rnConnection: Closernrn";
??????????? @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 '<font color="#FF0000">'.getsoft($host,$port).'</font>';
??????????? echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:'."rn";
??????????? ob_flush();
??????????? flush();
??????????? for($i = 0;$i < $num;$i++)
??????????? {
??????????????????? echo ping($host,$port);
??????????????????? ob_flush();
??????????????????? flush();
??????????????????? sleep(1);
??????????? }
??? }
?>
<form method="POST">
域名/IP:<input type="text" name="url" value="<?php echo $host;?>" size="50">
端口:<input type="text" name="duankou" value="<?php echo $port;?>" size="10">
<input type="submit" value="ping">
</form>

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

欢迎参与《PHP实例:php实现的ping端口函数实例》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读