Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: $_SERVER['REMOTE_ADDR'];
 
 автор: nato   (16.09.2008 в 10:56)   письмо автору
 
 

Здравствуйте!

Такая вот проблема:
команда $_SERVER['REMOTE_ADDR']; с разных компьютеров, хотя и не всегда,
выдает айпи сервера, а не клиента. Может, это из-за прокси?

Смысл: хотелось бы ограничить доступ к данным сайта по IP-адресам,
точнее - по первым цифрам
(чтобы в локальной сети было все доступно без авторизации,
а вне локальной сети доступ по паролю).

Можно ли такую задачу решить однозначно?
Или останется зависимость от настроек клиента или сервера?

Заранее большое спасибо.

  Ответить  
 
 автор: DEM   (16.09.2008 в 11:46)   письмо автору
 
   для: nato   (16.09.2008 в 10:56)
 

Человек всегда может зайти через прокси и с этим ничего не поделаешь...

  Ответить  
 
 автор: Le bien   (16.09.2008 в 12:00)   письмо автору
 
   для: nato   (16.09.2008 в 10:56)
 

Если с локальной сети не используют прокси - не может быть того, чтобы IP выводился тот же

  Ответить  
 
 автор: nato   (16.09.2008 в 12:27)   письмо автору
 
   для: 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'];

Вроде работает. Хотя еще из дома вечером протестирую.

  Ответить  
 
 автор: BinLaden   (16.09.2008 в 16:10)   письмо автору
 
   для: nato   (16.09.2008 в 12:27)
 

Переменные окружения, начинающиеся на "HTTP_" содержат значения обычных HTTP-заголовков. Отсюда Вы только верите клиенту на слово кто он такой.

P.S. Че за НАТО?!

  Ответить  
 
 автор: nato   (17.09.2008 в 10:04)   письмо автору
 
   для: BinLaden   (16.09.2008 в 16:10)
 

И как тогда быть?

  Ответить  
 
 автор: Zend72   (16.09.2008 в 15:15)   письмо автору
 
   для: nato   (16.09.2008 в 10:56)
 

>команда $_SERVER['REMOTE_ADDR'];
Это не команда

  Ответить  
 
 автор: nato   (17.09.2008 в 10:03)   письмо автору
 
   для: Zend72   (16.09.2008 в 15:15)
 

:) действительно, $_SERVER['REMOTE_ADDR']; это переменная,
а я имела в виду команду присваивания $ip=$_SERVER['REMOTE_ADDR'];

  Ответить  
 
 автор: AcidTrash   (17.09.2008 в 21:36)   письмо автору
 
   для: nato   (17.09.2008 в 10:03)
 

Советую почитать, может по вашей теме много вопросов развеется:
http://www.phpfaq.ru/ip

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования