我正在使用ipinfo.io通过PHP获取我当前的城市(位置)。
但是,使用这段代码时,我看不到我的城市。
$ipaddress = $_SERVER["REMOTE_ADDR"];
function ip_details($ip) {
$json = file_get_contents("http://ipinfo.io/{$ip}/geo");
$details = json_decode($json);
return $details;
}
$details = ip_details($ipaddress);
echo $details->city;
我不知道错误在哪里。
最佳答案
function getClientIP(){
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ipaddress = getClientIP();
function ip_details($ip) {
$json = file_get_contents("http://ipinfo.io/{$ip}/geo");
$details = json_decode($json, true);
return $details;
}
$details = ip_details($ipaddress);
echo $details['city'];
这应该工作。
但是,如果您需要在线资源,建议您习惯使用curl而不是file_get_contents()。 https://stackoverflow.com/a/5522668/3160141
关于php - 如何在PHP中从ipinfo.io获取位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28012011/