php实现的ping端口函数实例
2015-01-24信息快讯网
这篇文章主要介绍了php实现的ping端口函数,以实例形式较为详细的分析了PHP使用socket编程的技巧,需要的朋友可以参考下
本文实例讲述了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,$port,&$errno,&$errstr,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 '<font color="#FF0000">'.getsoft($host,$port).'</font>'; 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); } } ?> <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使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
ThinkPHP 404页面的设置方法
THINKPHP内容分页代码分享
linux中cd命令使用详解
WampServer下安装多个版本的PHP、mysql、apache图文教程
php中$_POST与php://input的区别实例分析
写一段简单的PHP建立文件夹代码
制作安全性高的PHP网站的几个实用要点
推荐5款跨平台的PHP编辑器
腾讯微博提示missing parameter errorcode 102 错误的解决方法
9个经典的PHP代码片段分享
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
phpmyadmin提示The mbstring extension is missing的解决方法
php提示Warning:mysql_fetch_array() expects的解决方法
php中simplexml_load_file函数用法实例
PHP实现下载断点续传的方法
php格式化日期实例分析
PHP中的Streams详细介绍
PHP产生不重复随机数的5个方法总结
php一行代码获取文件后缀名实例分析
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
php实现singleton()单例模式实例
PHP动态编译出现Cannot find autoconf的解决方法
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Windows下的PHP安装pear教程
10个实用的PHP正则表达式汇总
20个2014年最优秀的PHP框架回顾
两千行代码的PHP学习笔记汇总
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
PHP中的output_buffering详细介绍
安装ImageMagick出现error while loading shared libraries的解决方法
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
php使用百度ping服务代码实例