PHP获取IP、IP所在地址与连接数实例代码
<?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, "https://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;
}
?>
上一篇: CDR低版本怎么打开高版本文件?
下一篇: 兄弟做不成了