как определить IP посетителя?

Тема в разделе "PHP", создана пользователем SystemDoctor, 17 июл 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. SystemDoctor

    SystemDoctor Постоялец

    Регистр.:
    11 апр 2008
    Сообщения:
    138
    Симпатии:
    65
    какой оператор для этого используется или код?
     
  2. rus-us

    rus-us

    Регистр.:
    8 сен 2007
    Сообщения:
    153
    Симпатии:
    72
    PHP:
    <?php  $_SERVER['REMOTE_ADDR']; ?>
     
    irk, wayker47, Scriptus и ещё 1-му нравится это.
  3. timati

    timati Постоялец

    Регистр.:
    14 июл 2008
    Сообщения:
    134
    Симпатии:
    13
    Если пишешь какой то скрипт то приготовься к тому что у некоторых пользователей ип повторяться может т.к. через прокси серверы сейчас очень много народу лазит в инете
     
  4. gregzem

    gregzem

    Регистр.:
    21 окт 2007
    Сообщения:
    201
    Симпатии:
    66
    Мой вариант (в аргументах возвращает прокси, если есть).

    PHP:
        function GetRemoteIP(&$par_Proxy) {

           if (isset(
    $_SERVER["HTTP_X_FORWARDED_FOR"])) {

              if (isset(
    $_SERVER["HTTP_CLIENT_IP"])) {

                 
    $par_Proxy $_SERVER["HTTP_CLIENT_IP"];

              } else {

                 
    $par_Proxy $_SERVER["REMOTE_ADDR"];

              }

              
    $l_IP $_SERVER["HTTP_X_FORWARDED_FOR"];

           } else {

              
    $par_Proxy 0
              if (isset(
    $_SERVER["HTTP_CLIENT_IP"])) {

                 
    $l_IP $_SERVER["HTTP_CLIENT_IP"];

              } else {

                 
    $l_IP $_SERVER["REMOTE_ADDR"];
              }

           }

           return 
    $l_IP;

        }
     
    SystemDoctor нравится это.
  5. dumber

    dumber

    Регистр.:
    23 апр 2007
    Сообщения:
    272
    Симпатии:
    123
    Определение аноанимных прокси штука сложная. Вышепоказанный вариант уже не пройдет потому как самые ленивые прокси сервисы и те не оставляют header запросов с перенаправлением. Когда юзается проксик у юзера IP адрес часто меняется, бывает что при каждом обновлении страницы он будет то из Японии то из Германии.
    С этими сменами вообщем-то легко бороться.
    Надо при заходе пользователя
    1) проверять поддерживает ли брацзер кукис cookies
    - если нет грубо просить его включить эти кукисы
    - если да, записать даные о нем в БД
    2) при следующем заходе взять с кукиса IP и сравнить с предыдущими - при сильном различии (как правило первых 2х секци IP адреса) банить юзера **х с криком - прокси гауно. И то это не решит всю проблему. Сервисы по поределению проксей- платные :( поэтому зопа.

    Но это уже не для начинающего сайта :)
    Защита от прокси манов нужна если ты
    а. не хочешь чтобы все подряд лазили по твоему детищу
    б. не хочешь чтобы тебя хакнул школьник
    в. просто хочешь выпендренуться
     
    SystemDoctor нравится это.
  6. ctac911

    ctac911 Постоялец

    Регистр.:
    19 июл 2006
    Сообщения:
    146
    Симпатии:
    13
    а как лучше после идентификации конкретного пользователя по IP пометить его, что бы после смены IP вновь его идентифицировать?
     
  7. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Допустим что переменная $ip содержит айпишник юзверя(уже определенный).
    PHP:
    <?php
    if(isset($_COOKIE['user_last_ip']))
    {
    if(
    $_COOKIE['user_last_ip'] != $ip)
    {
    //Кука есть, но айпи не совпадает
    }
    else
    {
    //И кука есть, и айпи совпадает
    }
    }
    else
    {
    //Нет куки
    }
    ?>
     
  8. bork1234

    bork1234 Постоялец

    Регистр.:
    25 июн 2008
    Сообщения:
    65
    Симпатии:
    13
    Хочу предупредить, что не стоит это воспринимать с фанатизмом. Существуют еще такие вещи, как ADSL с динамическим IP и модемы (как ни странно)
     
  9. dumber

    dumber

    Регистр.:
    23 апр 2007
    Сообщения:
    272
    Симпатии:
    123
    ADSL и dialup меняют последние 2 секции, первые две влияют на страну и город, условно

    197.23.34.132 - корея

    198.23.34.132 -судан

    Один провадер так не делает, а последние цифры в рассчет не берутся.
     
  10. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Ты хотел сказать, ни один провайдер? Естественно не делает - RIPE раздает компаниям IP только из сегмента их страны.
     
Статус темы:
Закрыта.