SEO Сообщество: Спрашивайте и помогайте

Присоединяйтесь к сообществу профессиональных веб-мастеров PR-CY, отвечайте на вопросы коллег и задавайте свои.

Q&A SEO

Php — не показывает реальный ip

Esite Esite  
10
  15.01.2014 21:05       859    
Не могу понять, скрипт раньше нормально отображал реальный IP если открывать его, например, с включенной опцией турбо у оперы.
Сейчас уже не работает, пробовал другие, та-же проблема. Кто вкурсе в почему так.

<?php
function getUserHostAddress()
{
if (isset($_SERVER["HTTP_CLIENT_IP"])) {
return $_SERVER["HTTP_CLIENT_IP"];
} elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
return $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isset($_SERVER["HTTP_X_FORWARDED"])) {
return $_SERVER["HTTP_X_FORWARDED"];
} elseif (isset($_SERVER["HTTP_FORWARDED_FOR"])) {
return $_SERVER["HTTP_FORWARDED_FOR"];
} elseif (isset($_SERVER["HTTP_FORWARDED"])) {
return $_SERVER["HTTP_FORWARDED"];
} elseif (isset($_SERVER["HTTP_X_REAL_IP"])) {
return $_SERVER["HTTP_X_REAL_IP"];
} else {
return $_SERVER["REMOTE_ADDR"];
}
}
echo getUserHostAddress();

Ответы на пост (15) Написать ответ
aliiix aliiix
116
15.01.2014 21:15
phpinfo();
1
Esite Esite
10
15.01.2014 21:20
Что там смотреть?
0
aliiix aliiix
116
15.01.2014 21:21
что тебе передает опера в режиме турбо
0
Esite Esite
10
15.01.2014 21:27
IP её прокси, кстати на другом хостинге сейчас попробовал и реальный IP показал. А на бесплатном аккаунте хостинга Beget не работает, можно ли исправить?
0
aliiix aliiix
116
15.01.2014 21:43
Так покатит?
<?if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) $ip = trim(explode(",",$_SERVER["HTTP_X_FORWARDED_FOR"],2)); else $ip = $_SERVER["REMOTE_ADDR"];echo $ip;?>
0
Esite Esite
10
15.01.2014 21:51
Отображает пустую страницу (с прокси и без)
На другом хостинге с прокси показал Array, без прокси просто IP.
0
aliiix aliiix
116
15.01.2014 21:54
сорри
<?if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {$ips = explode(",",$_SERVER["HTTP_X_FORWARDED_FOR"],2); $ip=trim($ips[0]);} else $ip = $_SERVER["REMOTE_ADDR"];echo $ip;?>
0
Esite Esite
10
15.01.2014 22:01
Неа не робит на begete, где то в настройках сервера покопать надо, что то вырубили, а что не пойму.
0
cema93 cema93
317
15.01.2014 22:39
а что в логах апача появляется при открытии страницы?
0
Roman2002 Roman2002
220
16.01.2014 00:02
Nginx стоит? Если да, то , возможно, проблема в его настройках.
0
Stalk-p Stalk-p
34
16.01.2014 00:02
Может быть у вас nginx стоит как прокси, и ip пользователя не передаётся из-за неправильной настройки.
0
boav boav
61
16.01.2014 00:57
Вы свой IP знаете же, вот как выше посоветовали грузите phpinfo(); и поиском ищите в какой переменной валяется ваш ip, у меня точно такие же проблемы были, нашел этим способом и поправил скрипты...
0
boav boav
61
16.01.2014 01:00
у меня на сервере к примеру он валяется в _SERVER["HTTP_X_REAL_IP"]
0
i1t2b3 i1t2b3
0
17.01.2014 17:02
Да, дело в настройке Nginx может быть.
Добавьте это в блок "location /"
proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
0
egmalt egmalt
0
19.09.2014 23:49
ТС, мучаюсь с подобной проблемой на фрихосте beget'а, отпишись, как решилась проблема.
0