|
|
|
| Здравствуйте!
Такая вот проблема:
команда $_SERVER['REMOTE_ADDR']; с разных компьютеров, хотя и не всегда,
выдает айпи сервера, а не клиента. Может, это из-за прокси?
Смысл: хотелось бы ограничить доступ к данным сайта по IP-адресам,
точнее - по первым цифрам
(чтобы в локальной сети было все доступно без авторизации,
а вне локальной сети доступ по паролю).
Можно ли такую задачу решить однозначно?
Или останется зависимость от настроек клиента или сервера?
Заранее большое спасибо. | |
|
|
|
|
|
|
|
для: nato
(16.09.2008 в 10:56)
| | Человек всегда может зайти через прокси и с этим ничего не поделаешь... | |
|
|
|
|
|
|
|
для: nato
(16.09.2008 в 10:56)
| | Если с локальной сети не используют прокси - не может быть того, чтобы IP выводился тот же | |
|
|
|
|
|
|
|
для: Le bien
(16.09.2008 в 12:00)
| | После прочтения
http://www.freeproxy.ru/ru/free_proxy/faq/proxy_anonymity.htm
проблему решила следующим образом:
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
$ip=$_SERVER["HTTP_X_FORWARDED_FOR"];
else $ip=$_SERVER['REMOTE_ADDR'];
Вроде работает. Хотя еще из дома вечером протестирую. | |
|
|
|
|
|
|
|
для: nato
(16.09.2008 в 12:27)
| | Переменные окружения, начинающиеся на "HTTP_" содержат значения обычных HTTP-заголовков. Отсюда Вы только верите клиенту на слово кто он такой.
P.S. Че за НАТО?! | |
|
|
|
|
|
|
|
для: BinLaden
(16.09.2008 в 16:10)
| | И как тогда быть? | |
|
|
|
|
|
|
|
для: nato
(16.09.2008 в 10:56)
| | >команда $_SERVER['REMOTE_ADDR'];
Это не команда | |
|
|
|
|
|
|
|
для: Zend72
(16.09.2008 в 15:15)
| | :) действительно, $_SERVER['REMOTE_ADDR']; это переменная,
а я имела в виду команду присваивания $ip=$_SERVER['REMOTE_ADDR']; | |
|
|
|
|
|
|
|
для: nato
(17.09.2008 в 10:03)
| | Советую почитать, может по вашей теме много вопросов развеется:
http://www.phpfaq.ru/ip | |
|
|
|