PHP获取用户端的IP和对应地址

版权声明:闪灵龍所有 https://blog.csdn.net/qq_38117192/article/details/88826055

获取用户IP

//获取 用户IP
    function getIP()
    {
        static $realip;
        if (isset($_SERVER)){
            if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
                $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
            } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
                $realip = $_SERVER["HTTP_CLIENT_IP"];
            } else {
                $realip = $_SERVER["REMOTE_ADDR"];
            }
        } else {
            if (getenv("HTTP_X_FORWARDED_FOR")){
                $realip = getenv("HTTP_X_FORWARDED_FOR");
            } else if (getenv("HTTP_CLIENT_IP")) {
                $realip = getenv("HTTP_CLIENT_IP");
            } else {
                $realip = getenv("REMOTE_ADDR");
            }
        }
        return $realip;
    }

获取地区

//获取地区
    function getCity($ip = '')
    {
        if($ip == ''){
            $url = "http://pv.sohu.com/cityjson?ie=utf-8";//新浪接口获取访问者地区  http://int.dpool.sina.com.cn/iplookup/iplookup.php
            $ip=json_decode(file_get_contents($url),true);
            $data = $ip;
        }else{
            $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;//淘宝接口需要填写ip
            $ip=json_decode(file_get_contents($url));
            if((string)$ip->code=='1'){
                return false;
            }
            $data = (array)$ip->data;
        }

        return $data;
    }

测试

var_dump(getIP());
var_dump(getCity());  //或者   var_dump(getCity('113.69.136.205'));

输出内容

string(14) “113.69.136.205”

{“ip”:“113.69.136.205”,“country”:“中国”,“area”:"",“region”:“广东”,“city”:“佛山”,“county”:“XX”,“isp”:“电信”,“country_id”:“CN”,“area_id”:"",“region_id”:“440000”,“city_id”:“440600”,“county_id”:“xx”,“isp_id”:“100017”}

猜你喜欢

转载自blog.csdn.net/qq_38117192/article/details/88826055