程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP獲取IP、IP所在地址與連接數實例代碼

PHP獲取IP、IP所在地址與連接數實例代碼

編輯:關於PHP編程

<?php 
//獲取連接數最高的ip的詳細信息 
$top = 10; 
//獲取ip的詳細信息 
$get_location = true; 
//反解ip,用於獲取蜘蛛,開啟後速度較慢 
$reverse = FALSE; 
//$reverse = TRUE; 

ini_set(extension_dir,dirname(__FILE__)); 
ini_set(enable_dl,TRUE); 
if(!dl("php_curl.dll")){ 
    exit(Can load curl.); 

$content = `netstat -an -p TCP`; 
$regex = "/s TCPs d .d .d .d :(d )s (d .d .d .d ):d s /sm"; 
$table = array(); 
//1、連接數/2、本機ip/3、對方ip 
/** 
* 端口/ip是唯一的 
*/
if(preg_match_all($regex,$content,$result)){ 
 foreach($result[1] as $i=>$port){ 
  if(isset($table[$port.:.$result[2][$i]])) 
             $table[$port.:.$result[2][$i]] ; 
         else
            $table[$port.:.$result[2][$i]] = 1; 
    } 
 $curl = curl_init(); 
 curl_setopt($curl,CURLOPT_TIMEOUT,5); 
 curl_setopt($curl, CURLOPT_HEADER, 0); 
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
 $i = 0; 
 $count = 0; 
 if(asort($table)) 
  foreach($table as $key=>$times){ 
   $ip = substr(strstr($key,:),1); 
   $port = substr($key,0,strpos($key,:)); 
   $i ; 
   echo " 連接數:",$times, - ,$key; 
  if(!$get_location || $i<count($table)-$top){ 
  continue; 
 } 
 if($port==80) $count = $times; 
 if($ip!==127.0.0.1 || $ip!==0.0.0.0){ 
  $host = $reverse ? gethostbyaddr($ip) : $ip; 
 if($host==$ip){ 
  curl_setopt($curl,CURLOPT_URL, "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=txt&ip=".$ip); 
 $location = curl_exec($curl); 
  echo "(".preg_replace(/(s|d|.)/,,$location).")"; 
 } else { 
  echo "(".$host.")"; 
 } 
 } 
 } 
 echo " ",All(80):,$count; 
}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved