我有一个PHP脚本,我使用了几个星期,这使我能够捕获访问我的网站的人的IP,但几天后(我的印象是,因为我激活了选项“CDN我的主机服务器OVH上的+ HTTP / 2“我的脚本返回了我的web主机OVH的多个公共IP地址之一。
这是脚本:
function get_ip() {
if (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_COMING_FROM')) {
$ip = getenv('HTTP_X_COMING_FROM');
}
elseif (getenv('HTTP_VIA')) {
$ip = getenv('HTTP_VIA');
}
elseif (getenv('HTTP_XROXY_CONNECTION')) {
$ip = getenv('HTTP_XROXY_CONNECTION');
}
else {
$ip = getenv('REMOTE_ADDR');
}
return $ip;
}
$ip = get_ip();
感谢您的帮助
答案 0 :(得分:1)
好的,解决方案。
function get_ip() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_COMING_FROM')) {
$ip = getenv('HTTP_X_COMING_FROM');
}
elseif (getenv('HTTP_VIA')) {
$ip = getenv('HTTP_VIA');
}
elseif (getenv('HTTP_XROXY_CONNECTION')) {
$ip = getenv('HTTP_XROXY_CONNECTION');
}
elseif (getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR');
}
else {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
return $ip;
}
$ip = get_ip();