位置:  首页 -> 编程语言 -> PHP -> php 获取用户登录IP 及 IP归属地

php 获取用户登录IP 及 IP归属地


获取用户IP

function getIP(){
   $onlineip;
   if(getenv('HTTP_CLIENT_IP')) {
   $onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
   $onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
   $onlineip = getenv('REMOTE_ADDR');
} else {
   $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
    return $onlineip;
}
————————————————

获取 IP归属地

//太平洋网络查询ip(较快,稳定,免费)
function get_ip_city($ip){      
         $ch = curl_init();
         $url = 'https://whois.pconline.com.cn/ipJson.jsp?ip='.$ip;
         //用curl发送接收数据
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         //请求为https
         curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
         $location = curl_exec($ch);
         curl_close($ch);
         //转码
         $location = mb_convert_encoding($location, 'utf-8','GB2312');
         //var_dump($location);
         //截取{}中的字符串
         $location = substr($location, strlen('({')+strpos($location, '({'),(strlen($location) - strpos($location, '})'))*(-1));
        //将截取的字符串$location中的‘,’替换成‘&’   将字符串中的‘:‘替换成‘=’
         $location = str_replace('"',"",str_replace(":","=",str_replace(",","&",$location)));
         //php内置函数,将处理成类似于url参数的格式的字符串  转换成数组
         parse_str($location,$ip_location);
         return $ip_location['addr'];
     }
————————————————
到底了 8

相关阅读