百度地圖api根據用戶IP獲取用戶位置(PHP)


1.百度地圖開放平台找的你的ak ,鏈接:http://lbsyun.baidu.com/apiconsole/key

2.獲取用戶ip地址(外網ip 服務器上可以獲取用戶外網Ip 本機ip地址只能獲取127.0.0.1) ,可利用下面函數,或者$_SERVER["REMOTE_ADDR"]

function getip(){
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else if(!empty($_SERVER["REMOTE_ADDR"])){
$cip = $_SERVER["REMOTE_ADDR"];
}
else{
$cip = '';
}
preg_match("/[\d\.]{7,15}/", $cip, $cips);
$cip = isset($cips[0]) ? $cips[0] : 'unknown';
unset($cips);
return $cip;
}

//根據IP獲取用戶地址信息(其中$ak你的ak),下面只是獲取到省市信息,需要其他信息可打印$info
public function get_user_addr(){
$user_ip = $this->getip();
$url = "http://api.map.baidu.com/location/ip?ak=$ak&ip=$user_ip";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
if(curl_errno($ch)) {
echo 'CURL ERROR Code: '.curl_errno($ch).', reason: '.curl_error($ch);
}
curl_close($ch);
$info = json_decode($output, true);
if($info['status'] == "0"){
$addr_info = $info['content']['address_detail']['province'].' '.$info['content']['address_detail']['city'];
}

return $addr_info;
}

備注:獲取位置信息到市級

原文鏈接(感謝博主分享):https://www.cnblogs.com/zff193/p/4171135.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM