0 php ip ip-address
我正在尝试获取用户的IP地址,以向他们显示与其地理位置相关的内容.我使用php代码$ ip = getenv('REMOTE_ADDR'); 抓住他们的IP地址.这在我的计算机上工作正常,但我的共同开发人员尝试了它,发现他根本无法连接到我们的网站并且出现"Host Not Accessible"错误.他无法通过FTP连接到我们的网站,也无法通过他家中的另一台计算机连接到我们的网站.
我拿出了这段代码,他仍然无法连接(但可以使用代理).我想知道为什么这段代码会产生这些副作用.是$ _SERVER('REMOTE_ADDR').什么是在PHP中获取用户IP地址的最佳方法?
谢谢
拉斯
http://thephpcode.blogspot.com/2009/01/php-getting-secondary-internet-protocol.html
function getIP() {
$IP = '';
if (getenv('HTTP_CLIENT_IP')) {
$IP =getenv('HTTP_CLIENT_IP');
} elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$IP =getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('HTTP_X_FORWARDED')) {
$IP =getenv('HTTP_X_FORWARDED');
} elseif (getenv('HTTP_FORWARDED_FOR')) {
$IP =getenv('HTTP_FORWARDED_FOR');
} elseif (getenv('HTTP_FORWARDED')) {
$IP = getenv('HTTP_FORWARDED');
} else {
$IP = $_SERVER['REMOTE_ADDR'];
}
return $IP;
}
Run Code Online (Sandbox Code Playgroud)
至少这个代码甚至可以从ISP代理服务器后面的用户那里获得实际的IP地址等等.