Полноценная функция для получения IP-адреса клиента
Небольшая, но очень полезная функция для получения IP-адреса клиента. Основной плюс - в отличии от большинства решений учитывает не только REMOTE_ADDR.
Собственно публикую чтобы не потерять. А то регулярно ищу это дело по старому коду :).
PHP:
-
function GetIP() {
-
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
-
$ip = $_SERVER['REMOTE_ADDR'];
-
else
-
$ip = "unknown";
-
return $ip;
-
} // GetIP


May 10th, 2008 at 16:51 Quote
А почему REMOTE_ADDR не достаточно? С точки зрения подделки IP? Или бывают случаи когда REMOTE_ADDR ничего не отдает?
May 10th, 2008 at 21:26 Quote
Если человек сидит за прокси, то REMOTE_ADDR отдаст IP прокси.
May 10th, 2008 at 22:58 Quote
А можно подробнее? Я пробил этот скрипт через webwarper.net c комментироваием одного за другим ifelse, но не получил ничего, кроме IP webwarper. А ведь он как прокся работает.
Не только мне будет интересно.
Я в общем-то ламер, только лишь умею адаптировать чужие куски кода и клеить их вместе. Я не кодер, я при разработке puzzle собираю каждый раз из дступных в Нете кусочков.
May 10th, 2008 at 23:30 Quote
Прокси не обязан отдавать IP адрес пользователя. Некоторые отдают, некоторые нет.
May 11th, 2008 at 00:04 Quote
ОК.
А если я переиначу функцию и вместо присвоения на каждом шаге задам ей Эхо, то где и на чем я смогу получить такую ситуацию, в которой я получу разные IP? Куда я должен смотреть? Что почитать? Я говорю как ламер (и признаюсь) , а не с целью найти подвох. С целью образования. Мне пригодится. И не только мне.
May 11th, 2008 at 00:12 Quote
Да, и еще. В каком-то из предыдущих постов ты упомянул о том, что при валидации не надо инвалидов искать, надо следить чтобы все были валиды. А где в этом случае потенциальная лазейка?
May 11th, 2008 at 05:11 Quote
Максуд Разные IP будут. Тут нужно читать форумы вроде XPoint, потому что ситуация на границе PHP и протокола HTTP.
По поводу второго вопроса - не знаю, но как-то на подсознательном уровне кажется что 2-й вариант лучше.
P.S. я не автор блога :)
May 11th, 2008 at 09:58 Quote
Спасибо за консультацию. На всякий случай буду пользоваться, хотя несколько web-proxy и webwarper выдают одно и то же:
http://blog.yudin.eu/getip.php
May 12th, 2008 at 12:39 Quote
Довольно удобно, надо взять на заметку, благодарю!
May 15th, 2008 at 18:12 Quote
да.. очень полезно.. спасибо..