Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите дополнить код
В переменной содержится список IP адресов, нужно на начале функции сделать проверку, а точнее проверяем айпи адрес юзверя, если его айпи-адресс есть в списке (в переменной $config['ipusers'], то продолжаем выполнять функцию, если нет, выкидываем die, ну вот помогите реализовать
garvey
Отправлено: 09 Февраля, 2012 - 11:30:58
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Вот так код писать ПРАВИЛЬНО.
Двойные ковычки " используются только в случае если между ними находится переменная. PHP подсознательно начинает разбирать строку, в поиске значений переменных, которые на самом деле вообще не переменные, а строки, в результате код работает медленнее.
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Uchenik пишет:
только не забудьте что IP нужно проверять не только через REMOTE_ADDR
phpfaq.ru/ip
----- PostgreSQL DBA
snikers987
Отправлено: 09 Февраля, 2012 - 11:56:22
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Uchenik, не говорите ерунды, опиратся на переменные окружения начинающихся с HTTP_ мягко сказать не правильно. Так как в них можно посунуть что угодно, единственный правильный вариант это $_SERVER['REMOTE_ADDR']; Так как именно эта переменная содержит IP узла, который отправил запрос.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
Uchenik
Отправлено: 09 Февраля, 2012 - 11:58:11
Частый гость
Покинул форум
Сообщений всего: 187
Дата рег-ции: Авг. 2011
Помог: 1 раз(а)
Мелкий
Ну да. А я и имел ввиду ЧИСТЫЙ конечный IP, а не IP например, провайдера или шлюза =) (Добавление) snikers987 ???
Зачем тогда нужно было изобретать велосипед и придумывать все эти конструкции, если всё решает банальный $_SERVER['REMOTE_ADDR'];
хотя,может вы в чем то и правы, но я использую именно такой вариант, и иногда даже получаю целую цепочку IP адресов.
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
snikers987 пишет:
Так как именно эта переменная содержит IP узла, который отправил запрос
Ну и это тоже не верно.
Вообще есть IP-spoofing, но даже если без него, содержимое REMOTE_ADDR зависит от веб-сервера и, кроме того, в любом случае содержит не адрес хоста-отправителя, а адрес последнего устройства третьего уровня модели OSI на пути следования пакета от хоста клиента до сервера (а сказав короче - адрес последнего маршрутизатора на канале от клиента до сервера)
Все это к чему? 100% проверке IP доверять нельзя.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
snikers987
Отправлено: 09 Февраля, 2012 - 12:03:11
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Uchenik пишет:
snikers987 ???
Зачем тогда нужно было изобретать велосипед и придумывать все эти конструкции, если всё решает банальный $_SERVER['REMOTE_ADDR'];
Ссылку, которую дал Мелкий, читали?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
Uchenik
Отправлено: 09 Февраля, 2012 - 12:04:06
Частый гость
Покинул форум
Сообщений всего: 187
Дата рег-ции: Авг. 2011
Помог: 1 раз(а)
EuGen
УРРА!
Как я ждал авторитетное подтверждение своих слов! (Добавление) snikers987
конечно читал, и всё-равно остался при своём мнении. Тем более, как сказал EuGen подобным проверкам на 100% верить нельзя, поэтому абсолютно без разницы кто и как собирает велосипед =)
snikers987
Отправлено: 09 Февраля, 2012 - 12:06:15
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
EuGen пишет:
snikers987 пишет:
Так как именно эта переменная содержит IP узла, который отправил запрос
Ну и это тоже не верно.
Я имелл ввиду именно то что Вы написали, но не правильно сформулировал. (Добавление)
Uchenik пишет:
EuGen
УРРА!
Как я ждал авторитетное подтверждение своих слов!
И где там подверждение Ваших слов?
$_SERVER['REMOTE_ADDR']; во всяком случаи клиент не может прислать вместо ip "Hello world"
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
EuGen
Отправлено: 09 Февраля, 2012 - 12:10:28
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Uchenik
И в чем же подтверждение? Я сказал лишь про REMOTE_ADDR. Вам же правда нужно прочесть то, что сказали выше.
А HTTP_X_FORWARDED_FOR - это уже совсем другая история и чтобы ее подделать можно просто послать соответствующий заголовок в запросе на сервер. Либо же это как угодно может меняться любым прокси-сервером на маршруте. Так что доверия этим данным не может быть никакого. Почитайте про эту переменную окружения впридачу к тому, что выше сказали.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Uchenik
Отправлено: 09 Февраля, 2012 - 12:15:10
Частый гость
Покинул форум
Сообщений всего: 187
Дата рег-ции: Авг. 2011
Помог: 1 раз(а)
почитаю повнимательнее.
А код всё-равно неправильно оформлен.
как я уже говорил выше, подобное оформление кода приводит к дополнительным нагрузкам!
И с этим нельзя не согласиться =)
Мелкий
Отправлено: 09 Февраля, 2012 - 12:24:35
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Uchenik пишет:
А я и имел ввиду ЧИСТЫЙ конечный IP
0) Ну и чего вам даст мой ip 192.168.1.2? Или 192.168.1.30-70 (DHCP), когда я с нетбука пишу?
А можно и с 127.0.0.1 в инет ходить - не проблема.
1) с чего вы взяли, что тот IP, который вы получили - вообще является IP? Может, там 0.0.0.0 или 258.156.43.78
----- PostgreSQL DBA
EuGen
Отправлено: 09 Февраля, 2012 - 14:53:38
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.