zoukankan      html  css  js  c++  java
  • php ip 城市(百度地图)

    注:前往百度地图api开放平台登录

      在控制台创建一个应用

      拿到访问应用的AK

    代码:

    function getClientIP()
        {
            $realip = '';
            $unknown = 'unknown';
            if (isset($_SERVER)){
            if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)){
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
            foreach($arr as $ip){
            $ip = trim($ip);
            if ($ip != 'unknown'){
            $realip = $ip;
            break;
            }
            }
            }else if(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], $unknown)){
            $realip = $_SERVER['HTTP_CLIENT_IP'];
            }else if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)){
            $realip = $_SERVER['REMOTE_ADDR'];
            }else{
            $realip = $unknown;
            }
            }else{
            if(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), $unknown)){
            $realip = getenv("HTTP_X_FORWARDED_FOR");
            }else if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), $unknown)){
            $realip = getenv("HTTP_CLIENT_IP");
            }else if(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), $unknown)){
            $realip = getenv("REMOTE_ADDR");
            }else{
            $realip = $unknown;
            }
            }
            $realip = preg_match("/[d.]{7,15}/", $realip, $matches) ? $matches[0] : $unknown;
            return $realip;
        }
        //获取所在城市
        public function getCity()
        {
            // 获取当前位置所在城市
            $getIp = $this->getClientIP();
         // url中的ak参数换成 百度地图api开放平台中拿到的AK $content
    = file_get_contents("http://api.map.baidu.com/location/ip?ak={$ak}&ip={$getIp}&coor=bd09ll"); $json = json_decode($content); $address = $json->{'content'}->{'address'};//按层级关系提取address数据 $data['address'] = $address; $return['province'] = mb_substr($data['address'],0,3,'utf-8'); $return['city'] = mb_substr($data['address'],3,3,'utf-8'); return $return; }
  • 相关阅读:
    .ssh/config 常用配置
    openresty(nginx) 配置 http与https使用同一个端口,禁止 IP 直接访问
    uni-app 入门小白纯徒手编写组件 hello-popup
    CSS 是啥?前端小白入门级理解
    爱思助手备份 iPhone 时没有设置密码,恢复备份时需要密码的问题
    introduction-to-64-bit-assembly
    flv to mp4
    Hopper Disassembler系列之Sublime Text 3 爆破
    Hopper 学习
    微信小游戏 Three.js UI 2D text 简单方案
  • 原文地址:https://www.cnblogs.com/LF-place/p/13545937.html
Copyright © 2011-2022 走看看