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 相关文章推荐
PHP与MySQL交互使用详解
Oct 09 PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
如何实现php图片等比例缩放
Jul 28 PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
php微信公众平台配置接口开发程序
Sep 22 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
php实现支持中文的文件下载功能示例
Aug 30 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工厂模式简单实现方法示例
2018/05/23 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
使用js实现数据格式化
2014/12/03 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
Python标准库与第三方库详解
2014/07/22 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
Python实现基本线性数据结构
2016/08/22 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
法雷奥SQA(electric)面试问题
2016/01/23 面试题
服务承诺口号
2014/05/22 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
JavaScript实例 ODO List分析
2022/01/22 Javascript
Kubernetes控制节点的部署
2022/04/01 Servers