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'];
     }

其他IP类库地址 : PHP中文网 ip类库


猜你喜欢

转载自blog.csdn.net/qq_42961790/article/details/102503579