Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > поддержка загловка HTTP_X_REAL_IP в Apache


Автор: slavenk 27.12.2012, 16:28
Здравствуйте!
Подскажите пожайлуста, как можно настроитть поддержку заголовка HTTP_X_REAL_IP в Apache и PHP
phpinfo() в списке заголовков нет HTTP_X_REAL_IP. 

Подскажите пожайлуста, как его добавить?

Автор: Sanchezzz 28.12.2012, 06:46
HTTP_X_REAL_IP это не на апатч это только через ngnix.
Код

function getRealIP(){
    if(!empty($_SERVER['HTTP_X_REAL_IP'])){ $ip = $_SERVER['HTTP_X_REAL_IP']; } 
    elseif(!empty($_SERVER['HTTP_CLIENT_IP'])){
          $ip=$_SERVER['HTTP_CLIENT_IP'];
    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
          $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }else{
          $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

Автор: Arantir 28.12.2012, 14:25
slavenk, HTTP_X_REAL_IP - это не то, что вы, вероятно, подумали.
Это всего-лишь тот же IP пользователя, который находился бы в уже знакомых переменных apache, просто если у вас apache как backend стоит, а впереди nginx, то запросы на apache идут с nginx, то есть с 127.0.0.1. Так вот, чтобы при этом на apache узнать IP пользователя (а не 127.0.0.1), nginx и отправляет ему HTTP_X_REAL_IP.
"REAL" тут понятие не абсолютное, а относительное =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)