Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   нужно ли записывать ip посетителей? (http://forum.oszone.net/showthread.php?t=31179)

mar 24-05-2004 01:20 213843

собственно subj - как считает многоуважаемый all :)) - для обычного проекта (форума, среднего портала и тд - те не для какой-нибудь финансовой системы) - имеет ли это смысл?
(лсобенно с учетом того, что часть народа ходит из-под одного ip из каких-нибудь локальных сеток), а другая - с динамических адресов?
Хотелось бы услышать мнения :)

Vitki 24-05-2004 23:44 213844

Если скрипт определения IP простой, то он высетит только адрес проксика, через который к тебе зашел юзер. В этом случае смысла нет. Если скрипт нормальный, и засветит реальный IP адрес, то пиши на всякий случай. Оно пригодиться.

pauluss 25-05-2004 09:58 213845

Vitki
Можно поподробнее о "нормальном" скрипте? Желательно с примером.

Vitki 25-05-2004 18:01 213846

Ну вот, например этот скрипт:
http://books.kulichki.ru/index.php?book=ip
Он определяет IP проксика, его имя (если прописано) и светит реальный IP адрес. Имхо считаю его "нормальным", потому как попадались разные простые скрипты, которые светят в лучшем случае только IP проксика.
В любом случае поймать юзера, который зашел через проксик 1-2 уровня безопасности скриптом - невозможно. 3-го уровня можно, если постараться.

mar 25-05-2004 18:34 213847

Vitki
в моем случае скрипты пишу сама, так что что хочу, то и делаю :) Но не совсем что хочу - так же, как и в случае твоей ссылки - она мне сейчас определила IP freesco - шлюза, а я сижу под 98-ыми внутри, чего там не отразилось.

Prisoner 26-05-2004 09:13 213848

Это забавно конечно же... кажется люди опять начинают решать абстрактную задачу, а не сабж :). Ну что ж, аминь.

1) Определение ипа вещь полезная. Скажем для проведения статистики брожения по сайту (что правда можно сделать и с помощью сесий, но...). Плюс учет географии посетителей, почему если львиная доля посетителей с области N не писать побольше об этой области? Ну и т.д.
2) Теперь пособите неразумному, какие алгоритмы вы предлагаете чтобы отследить реальный ип сидящего за прокси человека?

mar 26-05-2004 10:37 213849

Prisoner
по пункту 2 - я как раз об этом и писала (что одни ходят массой из-под одного ip, другие - с динамически раздаваемых.) Правда и в том, и в другом случае  по крайней мере географию для общей статистики мы получим (то, что в п.1 :))
Поэтому, если кто-нибудь знает что-либо другое, кроме использования переменных окружения web-сервера (и не является попыткой взлома компьютера клиента :) - мне бы тоже хотелось послушать.

vadimiron 26-05-2004 14:08 213850

Я знаю, вроде есть способ определить, сидит ли юзер за своим айпи или за прокси, это информация может быть полезна для статистики, например кто за прокси, того не включаем по каким то соображениям в статистику
но реальный айпи узнать нельзя.(нормальными средствами)

Prisoner 29-05-2004 01:01 213851

А в студию? :)

vadimiron 29-05-2004 02:21 213852

Prisoner


http://www.r-i-p.info/artview.php?id=602

статья правда по ПЕРЛ, но для пхп тоже годится



Добавлено:

HTTP_X_FORWARDED_FOR

копать в сторону этой переменной

Добавлено:

А вот ещё ссылок накопал, может кому пригодится
на ПХП:
http://www.cgsa.net/php/identifierShow.php
на Джаве:
http://www.elant.ru/faq/java/files/167.html
А вот это помогает определить айпи  если даже за прокси юзер находится:
Код:

function get_real_IP() {
        global  $HTTP_VIA
             , $HTTP_X_COMING_FROM
             , $HTTP_CLIENT_IP
             , $HTTP_X_FORWARDED_FOR
             , $HTTP_X_FORWARDED
             , $HTTP_COMING_FROM
             , $HTTP_FORWARDED_FOR
             , $HTTP_FORWARDED
                 , $REMOTE_HOST
             , $REMOTE_ADDR ;
       
        if($HTTP_X_FORWARDED_FOR) { // case 1.A: proxy && HTTP_X_FORWARDED_FOR is defined
                $array = extractIP($HTTP_X_FORWARDED_FOR);
                if ($array && count($array) >= 1) {
                        return $array[0]; // first IP in the list
                }
        }
        if($HTTP_X_FORWARDED) { // case 1.B: proxy && HTTP_X_FORWARDED is defined
                $array = extractIP($HTTP_X_FORWARDED);
                if ($array && count($array) >= 1) {
                        return $array[0]; // first IP in the list
                }
        }
        if($HTTP_FORWARDED_FOR) { // case 1.C: proxy && HTTP_FORWARDED_FOR is defined
                $array = extractIP($HTTP_FORWARDED_FOR);
                if ($array && count($array) >= 1) {
                        return $array[0]; // first IP in the list
                }
        }
        if($HTTP_FORWARDED) { // case 1.D: proxy && HTTP_FORWARDED is defined
                $array = extractIP($HTTP_FORWARDED);
                if ($array && count($array) >= 1) {
                        return $array[0]; // first IP in the list
                }
        }
        if($HTTP_CLIENT_IP) { // case 1.E: proxy && HTTP_CLIENT_IP is defined
                $array = extractIP($HTTP_CLIENT_IP);
                if ($array && count($array) >= 1) {
                        return $array[0]; // first IP in the list
                }
        }
        /*
        if($HTTP_VIA) {
        // case 2:
        // proxy && HTTP_(X_) FORWARDED (_FOR) not defined && HTTP_VIA defined
        // other exotic variables may be defined
        return ( $HTTP_VIA .
            '_' . $HTTP_X_COMING_FROM .
            '_' . $HTTP_COMING_FROM    
          ) ;
        }
        if( $HTTP_X_COMING_FROM || $HTTP_COMING_FROM ) {
        // case 3: proxy && only exotic variables defined
        // the exotic variables are not enough, we add the REMOTE_ADDR of the proxy
        return ( $REMOTE_ADDR .
            '_' . $HTTP_X_COMING_FROM .
            '_' . $HTTP_COMING_FROM    
          ) ;
        }
        */
       
        // case 4: no proxy (or tricky case: proxy+refresh)
        if($REMOTE_HOST) {
                $array = extractIP($REMOTE_HOST);
                if ($array && count($array) >= 1) {
                        return $array[0]; // first IP in the list
                }
        }
       
        return $REMOTE_ADDR;
}

Добавлено:

А здесь ещё раз пример того  что у прокси серверов с высокой степенью защиты фиг  чего выташишь-но попытка не пытка...

http://antichat.ru/proxy/about.html

mar 29-05-2004 13:41 213853

vadimiron
все правильно, это все называется переменные окружения. (А уже их ты можешь использовать как на программах CGI-типа, так и под PHP/ASP)
НО: отсюда выводы:
1) что тебя окружает, то и получаешь (те как твой сервер настроен, а чаще всего не ты сам его настраиваешь, а хостер)
2) что тебе передают, то и видишь (поэтому HTTP_X_FORWARDED_FOR и HTTP_VIA_PROXY могут ничего не получать)
Поэтому-то, задавая вопрос типа "быть, или не быть" записи ip в проектах,  я и отмечала, что данные по ip могут быть мягко говоря неполными :)



Время: 13:27.

Время: 13:27.
© OSzone.net 2001-