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

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

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

Студворк — интернет-сервис помощи студентам
Как узнать IP пользователя?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.09.2006, 21:08
Ответы с готовыми решениями:

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

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

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

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

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

--------------
izra.ru
tarantyl
01.06.2009, 12:46
Вот тут описан способ который можно попробовать IP пользователя, страна город, узнать страну и город пользователя по IP
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
01.06.2009, 14:33
Погугли по поводу $_SERVER.
0
Почетный модератор
 Аватар для Humanoid
11551 / 4346 / 452
Регистрация: 12.06.2008
Сообщений: 12,452
01.06.2009, 19:15
Подняли тему 2007 года
И если точнее, то $_SERVER['REMOTE_ADDR']
0
 Аватар для ZhenyaZERO
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 33
06.11.2015, 21:25
Можно надежней:
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
10.11.2015, 23:33

Не по теме:

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

0
 Аватар для GoDr
90 / 79 / 33
Регистрация: 17.08.2015
Сообщений: 512
Записей в блоге: 1
11.11.2015, 10:03
Цитата Сообщение от 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
Цитата Сообщение от ZhenyaZERO Посмотреть сообщение
Можно надежней:

Не по теме:

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

0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.11.2015, 22:37
Цитата Сообщение от 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
 Аватар для GoDr
90 / 79 / 33
Регистрация: 17.08.2015
Сообщений: 512
Записей в блоге: 1
11.11.2015, 22:43
Цитата Сообщение от KOPOJI Посмотреть сообщение
И вы, конечно же, считаете, что ваш код это делает правильнее всего?
Нет конечно! просто ещё один альтернативный вариант

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

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

Не по теме:

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

0
Заблокирован
12.11.2015, 19:35
KOPOJI, хотел пасип ставить, аннету кнопки. Ну на словах: спасибо, дурацкие темы имеют дурацкие обсуждения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2015, 19:35
Помогаю со студенческими работами здесь

Как внести IP адрес пользователя в БД?
нужно в MVC внести код для определения IP пользователя. После, это IP должно быть внесено в бд, в моём случае phpmyAdmin, и храниться там....

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru