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

Форум PHP

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

 

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

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

тема: Отображение IP-адреса посетителя
 
 автор: rzimax   (24.03.2008 в 12:53)   письмо автору
 
 

Как сделать так чтобы напрмимер пользователь вошел на страничку и отображался его ИП? типа скрипта

   
 
 автор: DEM   (24.03.2008 в 12:58)   письмо автору
 
   для: rzimax   (24.03.2008 в 12:53)
 

echo $_SERVER['REMOTE_ADDR'];

   
 
 автор: afdm   (24.03.2008 в 13:41)   письмо автору
 
   для: DEM   (24.03.2008 в 12:58)
 

а если человек заходит через прокси? тогда так:

<?php
  $s 
getnv(HTTP_X_FORWADED_FOR);
  if ((
$s != null) && ($s != $_SERVER['REMOTE_ADDR'])) {
    
$_SERVER['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR']."/".$s;
  } echo 
"ip-адрес посетителя: ".$_SERVER['REMOTE_ADDR'];

   
 
 автор: Atheist   (24.03.2008 в 14:40)   письмо автору
 
   для: afdm   (24.03.2008 в 13:41)
 

> getnv(HTTP_X_FORWADED_FOR)
1. getenv
2. Константа HTTP_X_FORWADED_FOR не определена.

   
 
 автор: DEM   (24.03.2008 в 21:16)   письмо автору
 
   для: Atheist   (24.03.2008 в 14:40)
 

имелось ввиду HTTP_X_FORWARED_FOR

   
 
 автор: afdm   (24.03.2008 в 21:25)   письмо автору
 
   для: DEM   (24.03.2008 в 21:16)
 

очепятка... простите, код не проверял...
HTTP_X_FORWARDED_FOR

   
 
 автор: Atheist   (24.03.2008 в 21:55)   письмо автору
 
   для: afdm   (24.03.2008 в 21:25)
 

> HTTP_X_FORWARDED_FOR
Я такой предопределенной константы не знаю тоже.

   
 
 автор: afdm   (24.03.2008 в 22:41)   письмо автору
 
   для: Atheist   (24.03.2008 в 21:55)
 

значит это очепятка Хеопса... :)

   
 
 автор: Atheist   (24.03.2008 в 22:51)   письмо автору
 
   для: afdm   (24.03.2008 в 22:41)
 

Ну вот, всё на cheops'а свалил. А я уже было предвкушал милую дискуссию.

   
 
 автор: afdm   (25.03.2008 в 12:31)   письмо автору
 
   для: Atheist   (24.03.2008 в 22:51)
 

нет, правда. код из книги... я не проверял :)))

   
 
 автор: mihdan   (25.03.2008 в 14:15)   письмо автору
 
   для: Atheist   (24.03.2008 в 22:51)
 

HTTP_X_FORWARDED_FOR - эта переменная появляется когда соединение идет через proxy-сервер и она содержит IP адрес клиента, полученный в момент подключения к провайдеру. если proxy-server анинимный (или лучше сказать "анонимизирующий" - anonimizer), то HTTP_X_FORWARDED_FOR появляться не будет - вы будете получать IP proxy-сервера в REMOTE_ADDR как будто запрос был инициирован оттуда...
А если прокси "полу-анонимный" может быть установлена переменная HTTP_X_FORWARDED

HTTP_VIA - содержит имя proxy сервера через которого идет соединение.

REMOTE_ADDR - есть всегда - это адрес либо самого пользователя. либо прокси, через которую пользователь зашел

http://www.freeproxy.ru/ru/free_proxy/faq/proxy_anonymity.htm

   
 
 автор: Atheist   (25.03.2008 в 14:44)   письмо автору
 
   для: mihdan   (25.03.2008 в 14:15)
 

Я хотел лишь намекнуть, что значения стоит обрамлять кавычками или апострофами.
Но некоторые не поняли...

   
 
 автор: mihdan   (25.03.2008 в 10:54)   письмо автору
 
   для: rzimax   (24.03.2008 в 12:53)
 


<?
// Способ определения ip - адреса
// 0 - для большинства хостингов
// если не работает, то поставьте 1
$obtip 0;

// Определим IP - адрес клиента
$ip = ($obtip == 1)?getenv('HTTP_CLIENTIP'):$_SERVER["REMOTE_ADDR"];

// Если доступна подсеть, Добавим ее через /
$forward = @getenv ('HTTP_X_FORWARDER_FOR');
if (!empty(
$forward) && ($roward != $ip)) {
    
$ip .= "/".$forward;
}

echo 
'Ваш IP - ' $ip;
?>

   
 
 автор: AVS   (25.03.2008 в 21:14)   письмо автору
 
   для: mihdan   (25.03.2008 в 10:54)
 

Подскажите, как можно 100% определить, что пользователь зашел на сайт именно через прокси, а не на прямую запросил страницу со своей машины? Просто отследить наличие HTTP_X_FORWARDED_FOR и HTTP_X_FORWARDED?

   
Rambler's Top100
вверх

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