通过iptolatlng.com从IP php获取国家/地区名称

时间:2013-10-26 05:24:44

标签: php ip ip-address ip-geolocation

我要做的是从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;
}

当我在我的localhost中发送我的ip时这样:

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

它运作得很好!

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

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这里有两个可以使用的插件

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

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

我更喜欢第二个

答案 3 :(得分:0)

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

使用此功能,您无需前往外部Web服务器获取结果,也不会依赖第三方服务停机时间。