> 백엔드 개발 > PHP 튜토리얼 > PHP获取IP、IP所在地址与连接数实例代码_PHP教程

PHP获取IP、IP所在地址与连接数实例代码_PHP教程

WBOY
풀어 주다: 2016-07-13 17:43:18
원래의
1348명이 탐색했습니다.

//获取连接数最高的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  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; 
}
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478839.htmlTechArticle?php //获取连接数最高的ip的详细信息 $top = 10; //获取ip的详细信息 $get_location = true; //反解ip,用于获取蜘蛛,开启后速度较慢 $reverse = FALSE; //...
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿