使用者Ip地址和百度地圖api介面獲取使用者地理位置(經緯度座標,城市)
阿新 • • 發佈:2018-11-28
<?php
//獲取使用者ip(外網ip 伺服器上可以獲取使用者外網Ip 本機ip地址只能獲取127.0.0.1)
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
=getip();
//根據百度地圖api得到使用者Ip地理經緯度和城市
$url
=
"http://api.map.baidu.com/location/ip?ak=omi69HPHpl5luMtrjFzXn9df&ip=$ip&coor=bd09ll"
;
$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"
){
$lotx
=
$info
[
'content'
][
'point'
][
'y'
];
$loty
=
$info
[
'content'
][
'point'
][
'x'
];
$citytemp
=
$info
[
'content'
][
'address_detail'
][
'city'
];
$keywords
=
explode
(
"市"
,
$citytemp
);
$city
=
$keywords
[0];
}
else
{
$lotx
=
"34.2597"
;
$loty
=
"108.9471"
;
$city
=
"西安"
;
}
var_dump(
$lotx
);
//x座標 緯度
var_dump(
$loty
);
//y座標 經度
var_dump(
$city
);
//使用者Ip所在城市
|
--------------------------------------------------
百度地圖api新增功能 有時間可以看看
http://developer.baidu.com/map/index.php?title=jspopular