php实现的ping端口函数实例


Posted in PHP onNovember 12, 2014

本文实例讲述了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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
建立动态的WML站点(一)
Oct 09 PHP
PHP 5.0对象模型深度探索之属性和方法
Mar 27 PHP
PHP 防恶意刷新实现代码
May 16 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
解析PHP对现有搜索引擎的调用
Jun 25 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
PHP微信支付开发实例
Jun 22 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 PHP
PHP时间相关常用函数用法示例
Jun 03 PHP
PHP实现下载断点续传的方法
Nov 12 #PHP
php格式化日期实例分析
Nov 12 #PHP
PHP中的Streams详细介绍
Nov 12 #PHP
PHP产生不重复随机数的5个方法总结
Nov 12 #PHP
php一行代码获取文件后缀名实例分析
Nov 12 #PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 #PHP
php实现的css文件背景图片下载器代码
Nov 11 #PHP
You might like
PHP入门速成(2)
2006/10/09 PHP
PHP4实际应用经验篇(6)
2006/10/09 PHP
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
PHP Document 代码注释规范
2009/04/13 PHP
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
详解JS预解析原理
2020/06/16 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
python连接池实现示例程序
2013/11/26 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
python 自定义装饰器实例详解
2019/07/20 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
员工自我鉴定范文
2013/10/06 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
安全例会汇报材料
2014/08/23 职场文书
导游词之岳阳楼
2019/09/25 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记