![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
ReactOS |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.12.2007 Репутация: нет Всего: 33 |
Привет! =)
Вас беспокою по следующему поводу: Создал скрипт для определения IP. IP отловить не может, но кажется я догадываюсь почему! =) Мне просто интересно прав ли я или нет! Скрипт: "catch_ip.php"
Я цепляюсь за заголовок HTTP_X_FORWARD_FOR, но я юзаю хорошую прокси, которая не оставляет за собой заголовки, поэтому скрипт, если правильно сказать не "не работает", а просто не может определить IP. Вопросы: Как же взять IP? Ведь на сайте http://seemyip.com , любой ИП берется! Как мне брать хотя бы ИП прокси? PS: Скрипт, запрещающий доступ определенному IP, тоже не работает! =) Наверное, по этой же причине! =) НО: Знаю, что в .htaccess можно прописать:
Он же тоже не может отлавливать заголовки? =) А то сейчас возможности проверить - нет, подскажите насчет .htaccess тоже! Вроде чудес не бывает! =) Это сообщение отредактировал(а) ReactOS - 10.12.2007, 04:29 |
||||
|
|||||
Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: 1 Всего: 3 |
а функцию getIp не пробоваль юзать?
-------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
kasmanaft |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 16.11.2007 Репутация: 1 Всего: 2 |
Leoo, штой-то за функция такая?
ReactOS, используйте HTTP_X_FORWARDED_FOR |
|||
|
||||
Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: 1 Всего: 3 |
Прошу прощения, я немного ошибся
![]() -------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
Только HTTP_X_FORWARDED_FOR - далеко не единственное место, где могут скрываться (а могут и не скрываться) айпишники (см. напр. эту тему). Если, как говорится, "очень надо" и совсем делать нечего, можно тупо перешерстить $_SERVER и $_ENV на предмет чего-либо хоть приблизительно айпиподобного
![]() -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
getenv(HTTP_X_FORWARD_FOR)
не забывайте строки заключать в кавычки.
Тот же REMOTE_ADDR |
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
аа.. г-н SelenIT уже дал ссылку на функцию, которая потрошит все заголовки подрят и выплевывает нечто, похожее на ip)))
-------------------- ![]() ![]() |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Мне кажется, сам подход у автора не совсем правильный.
Во-первых, IP-адрес - это 4 байта, а не строка вида xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx Во-вторых, HTTP_X_FORWARDED_FOR - это никакая не "подсеть", что бы ни имелось в виду под этим термином, а HTTP заголовок. Ну, и небольшое замечание: в пхп отсутствует, насколько мне известно, константа HTTP_X_FORWARD_FOR. И никаких других констант с похожими именами - тоже. А строки в пхп пишутся в кавычках. |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Feldmarschall ну и какой подход по твоему правильный?
З.Ы. ReactOS, у тебя REMOTE_ADDR в некоторых местах написан без земли (т.е. REMOTE ADDR) Это сообщение отредактировал(а) MoLeX - 11.12.2007, 11:14 -------------------- Amazing ![]() |
|||
|
||||
Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
vasac,
Нет, он не пробьёт прокс, юзать надо HTTP_X_FORWARDED_FOR или HTTP_REAL_IP Feldmarschall, вполне они есть ![]() -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Мда, извинюсь. Мне показалось это очевидным.
Скрипт: "catch_ip.php"
Про остальное написал г-н SelenIT. Разве что, я бы придрался к слоу "тупо", поскольку тупой перебор, как раз, испортит картину. Как минимум, надо отсекать приватные сети. Это если рассматривать проблему определения IP адреса, а не неправильного написания имени переменной, в которой, похоже, и кроется разгадка. И, в любом случае, как он совершенно правильно заметил, перебор HTTP заголовков не имеет с определением IP адреса ничего общего. Сам термин, кстати, "определение IP адреса", я уверен на 100%, толкуется участниками дискуссии по-разному. Мягко говоря. ReactOS, тебе обязательно надо включить отображение ошибок. Полное отображение. Уже второй вопрос ты задаешь из-за того, что не видишь сообщений об ошибках. Это сообщение отредактировал(а) Feldmarschall - 11.12.2007, 11:31 |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Astraller, ну, вот это как раз то, о чем я говорил. Средний программист на PHP слабо разбирается в сетевых технологиях.
Повторю ещё раз. HTTP_X_FORWARDED_FOR или HTTP_REAL_IP - это НТТР заголовки. Учитывая, что в НТТР заголовке может быть написано "админ - дурак!", ты будешь продолжать настаивать на том, что надо использовать именно эти переменные? Кстати, о переменных. Я, конено, не уверен, и проверять мне лень, но я ни разу в жизни не видел, чтобы где-то использовались константы типа HTTP_X_FORWARDED_FOR. Судя по беглому знакомству с этим разделом форума, его посетители пренебрегают уровнем отображения ошибок E_ALL, отчего и происходят такие заблуждения и многочисленные ошибки. Вопрос же "определения IP адреса" - скорее философский. Надо четко понимать - что ты хочешь определить. Иначе можно разочароваться. |
|||
|
||||
Astraller |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
Уважаемый Feldmarschall,
Если есть выбор в 1 из 1kk случаев наткнуться на идиота который передаёт не верные значения header и отсеять его с помощью простого регулярного выажения и слепо доверять REMOTE_ADDR, я выберу первое!
Это говорит лишь о скудности вашего опыта и подтверждает лень. Не более более, ни менее.
"Что" ты хочешь определить ясно всем и каждому, вопрос "зачем" тебе его IP как раз и различает уровни. ![]() -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
||||||
|
|||||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Люблю самоуверенных. Особенно после того, как старательно и корректно указал им на ошибки.
Окей. Это зависит от задачи. придумать задачу, при которой следует использовать неизвестно что вместо адреса хоста, соединившегося с нашим сервером я не могу. Ключевое слово - "вместо". Наряду - пожалуйста. Но заменять REMOTE_ADDR на 20HTTP_X_FORWARDED_FOR - это какое-то немыслимое головотяпство.
я сделал такой запрос: http://code.google.com/#q=%22echo%20HTTP_X_FORWARDED_FOR%22 он вернул 0 результатов. Видимо, я не одинок в своем отсутствии опыта и ленности. Возьмём распространенный пример - ведение логов. Какой именно IP адрес (какого именно хоста) ты хочешь записать в лог? |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Feldmarschall, HTTP_X_FORWARDED_FOR встречается повсеместно, плохо искали. И везде совершенно четко говорится — единственное в чем можно быть б/м уверенным, это REMOTE_ADDR — IP пользователя или последнего прокси в цепи. Всё остальное заголовки, которые можно использовать для статистики и т.п, но не для построения на их основе какой-то системы безопастности.
Не понял |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |