0

我想要做的是从 IP 地址获取国家名称。我创建了一个名为 General 的类,在该类中我有一个名为 GetIPCountry($ip) 的函数,它从 iptolatlng.com 返回 jason 解码数组

public function GetIPCountry($ip){
    $details = json_decode(file_get_contents("http://www.iptolatlng.com?`ip=".urlencode($ip)));`
    return $details->countryFullName;
}

当我在本地主机中这样发送我的 ip 时:

$country = $general->GetIPCountry('***.***.***.**');

它工作得很好!

但是当我发送上传相同的文件并在我的服务器中运行它时,没有输出。

我想既然我在服务器上,我也应该尝试一下,$_SERVER['REMOTE_ADDR'];但这也没有显示任何结果。我怀疑这也可能是服务器错误,我托管在 iPage 请帮助我,提前致谢!

4

4 回答 4

0

这里有两个可以工作的插件

http://taylorlopes.com/?p=636

这个:http ://www.geoplugin.com/

我更喜欢第二个

于 2013-11-13T19:29:51.423 回答
0

不直接回答您的问题但可能会有所帮助 - 为什么不使用 geoip PECL 扩展? http://www.php.net/manual/en/function.geoip-country-code-by-name.php

有了这个,您不必为了结果而去外部网络服务器,也不会依赖于第 3 方服务的停机时间。

于 2014-03-10T13:39:37.897 回答
0

您是否发送 127.0.0.1 作为 IP?如果您向服务询问 IP 127.0.0.1 的位置,它将无法告诉您您的位置。从我的本地主机运行您的代码时,我遇到了这个问题。

于 2013-10-28T02:16:48.327 回答
0

只是一个简单的问题:当您将 $ip 托管在远程服务器上时,它包含什么?本质上,如果您要打印出 $ip,它是否包含您的 IP 地址?这将帮助您确定获取所连接计算机的 IP 地址是否存在问题或其他问题。

于 2013-10-26T05:28:00.147 回答