Если Ваши пользователи не требуют его, можно выключить, "Позволяют веб-кэши и Базы данных"
Правило №1 для IP-сетей. У всех, кто общается по нему, есть IP. Вы можете замаскировать его через стороннего поставщика, но у вас все еще есть публичный IP-адрес. Никаких исключений. Интернет - это сеть на основе IP. Я подозреваю, что в вашем коде где-то есть неправильная логика.
Также возможно, что эти переменные просто не возвращают ожидаемых результатов и поэтому пусты. Вы можете попробовать что-то вроде этого:
if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {
if ($_SERVER["HTTP_CLIENT_IP"]) {
$proxy = $_SERVER["HTTP_CLIENT_IP"];
} else {
$proxy = $_SERVER["REMOTE_ADDR"];
}
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else {
if ($_SERVER["HTTP_CLIENT_IP"]) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$ip = $_SERVER["REMOTE_ADDR"];
}
}
echo "Your IP $ip<BR>\n";
if (isset($proxy)) {
echo "Your proxy IP is $proxy<BR>\n";
}
Как почерпнуто из справочной страницы PHP по адресу: http://www.php.net/manual/en/language.variables.predefined.php#31724