我要做的是从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托管
请帮我,
提前谢谢!
答案 0 :(得分:0)
一个简单的问题:当你在远程服务器上托管它时,$ ip包含了什么?从本质上讲,如果您打印出$ ip,它是否包含您的IP地址?这将帮助您确定获取所连接计算机的IP地址是否存在问题。
答案 1 :(得分:0)
您是否发送127.0.0.1作为IP?如果您要求服务IP 127.0.0.1的位置,它将无法告诉您您的位置。从我的localhost运行代码时遇到了这个问题。
答案 2 :(得分:0)
答案 3 :(得分:0)
不直接回答您的问题但可能有所帮助 - 为什么不使用geoip PECL扩展? http://www.php.net/manual/en/function.geoip-country-code-by-name.php
使用此功能,您无需前往外部Web服务器获取结果,也不会依赖第三方服务停机时间。