你好,我被困在这个我不知道发生了什么。我使用谷歌地理插件api获取国家名称使用ip地址。这是我的密码below:-
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = @$_SERVER['REMOTE_ADDR'];
$result = array('country'=>'', 'city'=>'');
if(filter_var($client, FILTER_VALIDATE_IP)){
$ip = $client;
}elseif(filter_var($forward, FILTER_VALIDATE_IP)){
$ip = $forward;
}else{
$ip = $remote;
}
$ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
if($ip_data && $ip_data->geoplugin_countryName != null){
$result['country'] = $ip_data->geoplugin_countryCode;
$result['city'] = $ip_data->geoplugin_city;
}
echo "<pre>"; print_r($result); die;
我来自印度。有时当我访问网站,它显示印度或有时它显示新加坡。但我只在印度。有谁能告诉我们我做错了什么,并提供一些替代方案,这样我们就可以得到正确的结果。
1条答案
按热度按时间m4pnthwp1#
可能是因为您正在检索ip。您可以使用以下方法获取客户端的ip地址:
然后使用您收到的ip查找国家名称:
有时您无法使用我前面提到的函数获取客户端ip,在这种情况下,就像您使用的一样,您可以使用以下方法获取其公共ip:
然后再次使用您收到的公共ip调用ip\ U info函数。