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 相关文章推荐
使用 MySQL 开始 PHP 会话
Dec 21 PHP
php中支持多种编码的中文字符串截取函数!
Mar 20 PHP
php创建多级目录代码
Jun 05 PHP
php 文件上传系统手记
Oct 26 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
PHP 中常量的知识整理
Apr 14 PHP
Laravel框架模板继承操作示例
Jun 11 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
PHP rmdir()函数的用法总结
Jul 02 PHP
laravel通用化的CURD的实现
Dec 13 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
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
PHP中HTML标签过滤技巧
2014/01/07 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
Python函数参数类型*、**的区别
2015/04/11 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
python实现静态web服务器
2019/09/03 Python
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
公务员培的训心得体会
2014/09/01 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
交通安全学习心得体会
2016/01/18 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python
JavaScript流程控制(分支)
2021/12/06 Javascript