最新总结-php根据ip获取所在位置(定位)

一、前言:很多app及网站会用到定位这个功能,除了客户端的sdk集成之外,服务端也有解决方案!

二、网上各种方法:

1.新浪接口根据ip查询所在区域信息(经过测试,不能使用)

2.淘宝接口根据ip查询所在区域信息(经过测试,回调时间经常在10秒左右,甚至更久!)

3.腾讯根据IP获取地理位置API(经过测试,不能使用)

4.其他方法(需要收费,且有限制)

上面是查到的方法,具体不阐述了,网上都有。

5.除此之外,对于laravel框架,相应的获取ip位置的扩展包:点击github,具体使用教程见如下视频:点击跳转,在此也特别感谢laravel-china社区提供的贡献!

三、百度普通ip定位(回调时间<100ms):

当然,需要注册百度开放平台,然后开发者认证,审核通过后(我是当天就通过了)获得ak,就可以进行开发了,日配额:300万,基本够用的了。下面附上code:

//获取ip地址
function get_ip(){
    if (isset($_SERVER)) {
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        } elseif (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");
        } elseif (getenv("HTTP_CLIENT_IP")) {
            $realip = getenv("HTTP_CLIENT_IP");
        } else {
            $realip = getenv("REMOTE_ADDR");
        }
    }
    return $realip;
}
 
   //百度ip接口
    public function get_ip()
    {
        $ip = get_ip();
        $ak = '自己的ak值';
        $url = file_get_contents("http://api.map.baidu.com/location/ip?ip=$ip&ak=$ak");
        $res1 = json_decode($url,true);
        $data =$res1;
        if ($data) {
            $this->response(array("status" => 1, "msg" => "查询成功", "result" => $data), 'json');
        } else {
            $this->response(array("status" => -1, "msg" => "查询失败"), 'json');
        }
    }

打印数据如下:
{
    "address": "HK|香港|香港|None|None|0|0",
    "content": {
        "address_detail": {
            "province": "香港特别行政区",
            "city": "香港特别行政区",
            "district": "",
            "street": "",
            "street_number": "",
            "city_code": 2912
        },
        "address": "香港特别行政区",
        "point": {
            "y": "2530455.45",
            "x": "12711279.5"
        }
    },
    "status": 0
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值