Home > php教程 > PHP源码 > 可以ping端口的php函数

可以ping端口的php函数

PHP中文网
Release: 2016-05-25 17:15:43
Original
1306 people have browsed it


<?php
/*
 * @author     xujiajay
 * @date       2010-10-7
 * @email      xujiaphp@gmail.com
 * @function   可以ping端口的php函数
 *
 */
	error_reporting(E_ERROR);
	header("content-Type: text/html; charset=utf-8");
	set_time_limit(120);
	$host = isset($_POST[&#39;url&#39;]) ? chop(str_replace(&#39;http://&#39;,&#39;&#39;,$_POST[&#39;url&#39;])) : &#39;www.baidu.com&#39;;
	$port = isset($_POST[&#39;duankou&#39;]) ? chop($_POST[&#39;duankou&#39;]) : &#39;80&#39;;
	$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 &#39;unknown&#39;;
	        $get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnection: Close\r\n\r\n";
	        @fputs($fp,$get);
	        $data = &#39;&#39;;
	        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],&#39;Server&#39;)){$k = $i; break;}
	        }
	        if(!stristr($array[$k],&#39;Server&#39;)) return &#39;unknown&#39;;
	        else return str_replace(&#39;Server&#39;,&#39;服务器软件&#39;,$array[$k]);
	}
	function ping($host,$port)
	{
	        $time_start = microtime_float();
	        $ip = gethostbyname($host);
	        $fp = @fsockopen($host,$port,&$errno,&$errstr,1);
	        if(!$fp) return &#39;Request timed out.
	&#39;."\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 &#39;Reply from &#39;.$ip.&#39;: time=&#39;.$time.&#39;ms
	&#39;;
	}
	if(isset($_POST[&#39;url&#39;]) && isset($_POST[&#39;duankou&#39;]))
	{
	        echo &#39;&#39;.getsoft($host,$port).&#39;
	
	&#39;;
	        echo &#39;Pinging &#39;.$host.&#39; [&#39;.gethostbyname($host).&#39;] with Port:&#39;.$port.&#39; of data:
	
	&#39;."\r\n";
	        ob_flush();
	        flush();
	        for($i = 0;$i < $num;$i++)
	        {
	                echo ping($host,$port);
	                ob_flush();
	                flush();
	                sleep(1);
	        }
	}
?>域名/IP: 
端口:
Copy after login

                   

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template