国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php實現的ping端口函數實例

2024-09-04 11:43:10
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php實現的ping端口函數,以實例形式較為詳細的分析了PHP使用socket編程的技巧,需要的朋友可以參考下

本文實例講述了php實現的ping端口函數。分享給大家供大家參考。

具體實現代碼如下:

  1. <?php 
  2. /* 
  3.  * @author     xujiajay 
  4.  * @date       2010-10-7 
  5.  * @function   可以ping端口的php函數 
  6.  * 
  7.  */ 
  8.     error_reporting(E_ERROR); 
  9.     header("content-Type: text/html; charset=utf-8"); 
  10.     set_time_limit(120); 
  11.     $host = isset($_POST['url']) ? chop(str_replace('http://','',$_POST['url'])) : 'www.baidu.com'
  12.     $port = isset($_POST['duankou']) ? chop($_POST['duankou']) : '80'
  13.     $num  = 10; 
  14.     function microtime_float() 
  15.     { 
  16.             list($usec$sec) = explode(" ", microtime()); 
  17.             return ((float)$usec + (float)$sec); 
  18.     } 
  19.     function getsoft($host,$port
  20.     { 
  21.             $fp = @fsockopen($host,$port,&$errno,&$errstr,3); 
  22.             if(!$fpreturn 'unknown'
  23.             $get = "GET / HTTP/1.1/r/nHost:".$host."/r/nConnection: Close/r/n/r/n"
  24.             @fputs($fp,$get); 
  25.             $data = ''
  26.             while ($fp && !feof($fp)) 
  27.             $data .= fread($fp, 1024); 
  28.             @fclose($fp); 
  29.             $array = explode("/n",$data); 
  30.             $k = 2; 
  31.             for($i = 0;$i < 20;$i++) 
  32.             { 
  33.                     if(stristr($array[$i],'Server')){$k = $ibreak;} 
  34.             } 
  35.             if(!stristr($array[$k],'Server')) return 'unknown'
  36.             else return str_replace('Server','服務器軟件',$array[$k]); 
  37.     } 
  38.     function ping($host,$port
  39.     { 
  40.             $time_start = microtime_float(); 
  41.             $ip = gethostbyname($host); 
  42.             $fp = @fsockopen($host,$port,&$errno,&$errstr,1); 
  43.             if(!$fpreturn 'Request timed out.'."/r/n"
  44.             $get = "GET / HTTP/1.1/r/nHost:".$host."/r/nConnection: Close/r/n/r/n"
  45.             @fputs($fp,$get); 
  46.             @fclose($fp); 
  47.             $time_end = microtime_float(); 
  48.             $time = $time_end - $time_start
  49.             $time = ceil($time * 1000); 
  50.             return 'Reply from '.$ip.': time='.$time.'ms'
  51.     } 
  52.     if(isset($_POST['url']) && isset($_POST['duankou'])) 
  53.     { 
  54.             echo '<font color="#FF0000">'.getsoft($host,$port).'</font>'
  55.             echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:'."/r/n"
  56.             ob_flush(); 
  57.             flush(); 
  58.             for($i = 0;$i < $num;$i++) 
  59.             { 
  60.                     echo ping($host,$port); 
  61.                     ob_flush(); 
  62.                     flush(); 
  63.                     sleep(1); 
  64.             } 
  65.     } 
  66. ?> 
  67. <form method="POST"
  68. 域名/IP:<input type="text" name="url" value="<?php echo $host;?>" size="50"
  69. 端口:<input type="text" name="duankou" value="<?php echo $port;?>" size="10"
  70. <input type="submit" value="ping"
  71. </form> 

希望本文所述對大家的PHP程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 京山县| 郯城县| 鄂伦春自治旗| 招远市| 米易县| 潮安县| 双辽市| 宜川县| 启东市| 武义县| 永善县| 县级市| 清河县| 固始县| 丰县| 洛阳市| 砀山县| 府谷县| 闵行区| 遵义县| 阜平县| 鄄城县| 自贡市| 成都市| 乃东县| 温泉县| 通化县| 闸北区| 灵璧县| 泗水县| 当雄县| 陆良县| 绥阳县| 泰兴市| 徐水县| 岳阳县| 龙江县| 时尚| 奉节县| 开江县| 嫩江县|