php获取用户当前坐标,thinkphp 获取ip定位坐标

文章采取新浪开放的API,直接上代码,没多少说的

/**  * 获取用户真实的ip地址  */ function GetIp(){       $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;   }      /**  * 新浪的开放API  * 根据ip定位 地区和网络等等  * @param string $ip ip address  */ function GetIpLookup($ip = ''){       if(empty($ip)){           $ip = GetIp();       }       $res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);       if(empty($res)){ return false; }       $jsonMatches = array();       preg_match('#\{.+?\}#', $res, $jsonMatches);       if(!isset($jsonMatches[0])){ return false; }       $json = json_decode($jsonMatches[0], true);       if(isset($json['ret']) && $json['ret'] == 1){           $json['ip'] = $ip;           unset($json['ret']);       }else{           return false;       }       return $json;   }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值