Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/206: Рейтинг темы: голосов - 206, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 20.09.2006
Сообщений: 24
1

Как определить IP-адрес пользователя

23.09.2006, 21:08. Показов 37851. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как узнать IP пользователя?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2006, 21:08
Ответы с готовыми решениями:

Как определить адрес пользователя (сидящего за прокси) из сервлета?
... пользователь сидит за проксей ? - про существование переменной HTTP_X_FORWARDED_FOR я в...

Определить адрес пользователя
Привет возник такой вопрос как определить адрес пользователя чтобы предлагать услуги, допустим...

Как определить ip адрес пользователя, зашедшего на сайт?...если сайт лежит на локальной машинке
Уважаемые коллеги, подскажите: как определить ip адрес пользователя, зашедшего на сайт?...если...

как внести IP адрес пользователя в бд?
нужно в MVC внести код для определения IP пользователя. После, это IP должно быть внесено в бд, в...

18
7 / 9 / 10
Регистрация: 22.08.2006
Сообщений: 378
23.09.2006, 21:17 2
$REMOTE_ADDR
1
0 / 0 / 0
Регистрация: 20.09.2006
Сообщений: 24
23.09.2006, 21:25  [ТС] 3
эээ..... И как это применить?
0
7 / 9 / 10
Регистрация: 22.08.2006
Сообщений: 378
23.09.2006, 22:00 4
Цитата Сообщение от akhtung
эээ..... И как это применить?
ну напиши:
echo $REMOTE_ADDR;
вот тебе и выведет ip юзера на экран
0
0 / 0 / 0
Регистрация: 20.09.2006
Сообщений: 24
17.10.2006, 17:56  [ТС] 5
Подскажи, а что еще я могу узнать о пользователе?
0
7 / 9 / 10
Регистрация: 22.08.2006
Сообщений: 378
18.10.2006, 11:25 6
Цитата Сообщение от akhtung
Подскажи, а что еще я могу узнать о пользователе?
незнаю даже

но мне кажется с помощью php много о юзере не узнаешь, т.к. он (интерпретатор php) работает на стороне сервера.
в этом случае надо юзать то, что находится ближе к юзеру - JS например
0
0 / 0 / 0
Регистрация: 24.03.2007
Сообщений: 3
24.03.2007, 11:14 7
Почему не узнаешь, можно узнать ip, софт, реферер и т.д. Почитай про переменные окружения и зарезервированые переменные php
0
Гость
12.04.2007, 22:47 8
print_r($_ENV);

--------------
izra.ru
tarantyl
01.06.2009, 12:46 9
Вот тут описан способ который можно попробовать IP пользователя, страна город, узнать страну и город пользователя по IP
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
01.06.2009, 14:33 10
Погугли по поводу $_SERVER.
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
01.06.2009, 19:15 11
Подняли тему 2007 года
И если точнее, то $_SERVER['REMOTE_ADDR']
0
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 33
06.11.2015, 21:25 12
Можно надежней:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
 
     function getIP(){
    if (!empty($_SERVER['HTTP_CLIENT_IP'])){
        //check ip from share internet
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        //to check ip is pass from proxy
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
    }
    $ip = getIP();
    echo 'Ваш IP - '.$ip.'!';
     ?>
1
KOPOJI
10.11.2015, 23:33
  #13

Не по теме:

Цитата Сообщение от Humanoid Посмотреть сообщение
Подняли тему 2007 года
фигня, два года ни о чем. Вот ZhenyaZERO показал это наглядно..

0
90 / 79 / 33
Регистрация: 17.08.2015
Сообщений: 512
Записей в блоге: 1
11.11.2015, 10:03 14
Цитата Сообщение от Humanoid Посмотреть сообщение
Подняли тему 2007 года
Подняли тему 2009 года

Добавлено через 4 минуты
KOPOJI, эта тема в большей части бестолковая и постоянно все соревнуются как же всё таки узнать IP или какой IP правильнее

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    function getIP()
    {
        $serverVars = array(
            "HTTP_X_FORWARDED_FOR",
            "HTTP_X_FORWARDED",
            "HTTP_FORWARDED_FOR",
            "HTTP_FORWARDED",
            "HTTP_VIA",
            "HTTP_X_COMING_FROM",
            "HTTP_COMING_FROM",
            "HTTP_CLIENT_IP",
            "HTTP_XROXY_CONNECTION",
            "HTTP_PROXY_CONNECTION",
            "HTTP_USERAGENT_VIA"
        );
        foreach ($serverVars as $serverVar) {
            if (!empty($_SERVER) && !empty($_SERVER[$serverVar])) {
                $proxyIP = $_SERVER[$serverVar];
            } elseif (!empty($_ENV) && isset($_ENV[$serverVar])) {
                $proxyIP = $_ENV[$serverVar];
            } elseif (@getenv($serverVar)) {
                $proxyIP = getenv($serverVar);
            }
        }
        if (!empty($proxyIP)) {
            $isIP = preg_match('|^([0-9]{1,3}\.){3,3}[0-9]{1,3}|', $proxyIP, $regs);
            $long = ip2long($regs[0]);
            if ($isIP && (sizeof($regs) > 0) && $long != -1 && $long !== false) {
                return $regs[0];
            }
        }
 
        return $_SERVER['REMOTE_ADDR'];
    }
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
11.11.2015, 19:37 15
Цитата Сообщение от ZhenyaZERO Посмотреть сообщение
Можно надежней:

Не по теме:

Я уверен что автор с 2006 года сидит и ждет варианта понадежней. Красава!

0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.11.2015, 22:37 16
Цитата Сообщение от GoDr Посмотреть сообщение
и постоянно все соревнуются как же всё таки узнать IP или какой IP правильнее
2006-2007-2009-2015 ну прям ппц, постоянно донельзя..
Цитата Сообщение от GoDr Посмотреть сообщение
как же всё таки узнать IP или какой IP правильнее
И вы, конечно же, считаете, что ваш код это делает правильнее всего? Код совершенно не продуманный
Неужели вы считаете, что на какой-то итерации цикла вдруг пропадут (или появятся, если отсутствовали) $_SERVER, $_ENV? К чему проверка сначала в $_ENV, а затем в getenv? Вы знаете разницу между $_ENV и getenv? Зачем насильно подавлять ошибки при использовании getenv, если там в принципе не может быть никакой ошибки? Почему использование проверки с preg_match и ip2long для всех вариантов, кроме $_SERVER['REMOTE_ADDR'], чем он так разительно отличается ? Да и вообще, нужна ли эта проверка в данной функции?
К чему тут цикл? И почему, даже в случае найденного вхождения, цикл продолжается, а не прерывается?
Проверять существование суперглобальных переменных.. Если их у вас не существует (при запуске из браузера, конечно), то вам явно надо забыть о такой мелочи, как IP адрес пользователя - а нужно срочно разбираться, что же случилось с вашим PHP и что его грохнуло..

Может, лучше так тогда?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$serverVars = array_flip(array(
    'HTTP_X_FORWARDED_FOR',
    'HTTP_X_FORWARDED',
    'HTTP_FORWARDED_FOR',
    'HTTP_FORWARDED',
    'HTTP_VIA',
    'HTTP_X_COMING_FROM',
    'HTTP_COMING_FROM',
    'HTTP_CLIENT_IP',
    'HTTP_XROXY_CONNECTION',
    'HTTP_PROXY_CONNECTION',
    'HTTP_USERAGENT_VIA'
));
if(($key = array_intersect_key($serverVars, $_SERVER)))
    return $_SERVER[current($key)];
if(($key = array_intersect_key($serverVars, $_ENV)))
    return $_ENV[current($key)];
return $_SERVER['REMOTE_ADDR'];
А вообще, тырнет и так кишит всевозможными способами определения IP браузера..
0
90 / 79 / 33
Регистрация: 17.08.2015
Сообщений: 512
Записей в блоге: 1
11.11.2015, 22:43 17
Цитата Сообщение от KOPOJI Посмотреть сообщение
И вы, конечно же, считаете, что ваш код это делает правильнее всего?
Нет конечно! просто ещё один альтернативный вариант

Я привёл этот код исключительно имея в виду это:
Цитата Сообщение от KOPOJI Посмотреть сообщение
А вообще, тырнет и так кишит всевозможными способами определения IP браузера..
Как видишь, мысли в конечно итоге у нас одинаковые

Я вообще забил на такие сложности и просто делаю это
PHP
1
return $_SERVER['REMOTE_ADDR'];
0
KOPOJI
11.11.2015, 22:50
  #18

Не по теме:

а я поступаю еще проще - я не использую вообще ничего из этого.

0
Заблокирован
12.11.2015, 19:35 19
KOPOJI, хотел пасип ставить, аннету кнопки. Ну на словах: спасибо, дурацкие темы имеют дурацкие обсуждения
0
12.11.2015, 19:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2015, 19:35
Помогаю со студенческими работами здесь

Имя Пользователя Почему-то Подставляется Как Интернет-адрес
Добрый день! В гугле никак не могу найти похожую ситуацию, может кто-то из вас с таким встречался....

Как определить IP-адрес сети, зная IP-адрес узла назначения и маску сети
Добрый вечер, форумчане! Дали задачку одну: &quot;Найти IP-адрес сети, зная IP-адрес узла...

Как организовать отправку е-майла без вмешательства пользователя на заранее определенный адрес
Всем привет! Задача следующая: приложение аттачит базу данных к MS SQL Server на лок....

Вычислить адрес верхушки стека, адрес следующей команды, адрес переменной, адрес которой содержится в BX
Помогите решить следующие задачи: 1.Вычислить адрес верхушки стэка. 2.Вычислить адрес следующей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru