ИП адрес клиента что это

Как я могу получить IP-адрес клиента с помощью PHP? Я хочу сохранить запись пользователя, который вошел в мой сайт через его/ее IP-адрес.

Anup Prakash 09 июнь 2010, в 06:27
Поделиться

См. RFC6302 с рекомендациями о том, что регистрировать, и особенно в настоящее время не забывайте регистрировать порт, а не только адрес.

Patrick Mevzek 03 янв. 2018, в 20:05

Предупреждение для тех, кто отслеживает пользователей, в нескольких регионах мира ISPS используют CGNAT, что значительно усложняет доверие к простому IP-адресу.

Jonathan 08 авг. 2018, в 15:13
Поделиться:
environment-variables

24 ответа

Независимо от того, что вы делаете, убедитесь, что вы не доверяете данным, отправленным с клиента. $_SERVER[‘REMOTE_ADDR’] содержит реальный IP-адрес соединительной стороны. Это самое надежное значение, которое вы можете найти.

Однако они могут находиться за прокси-сервером, и в этом случае прокси-сервер может установить $_SERVER[‘HTTP_X_FORWARDED_FOR’] , но это значение легко подделать. Например, он может быть установлен кем-то без прокси, или IP может быть внутренним IP-адресом из локальной сети за прокси-сервером.

Это означает, что если вы собираетесь сохранить $_SERVER[‘HTTP_X_FORWARDED_FOR’] , убедитесь, что вы также сохранили значение $_SERVER[‘REMOTE_ADDR’] . Например. сохраняя оба значения в разных полях в вашей базе данных.

Если вы собираетесь сохранить IP-адрес в базу данных в виде строки, убедитесь, что у вас есть место, по крайней мере, 45 символов. IPv6 находится здесь, и эти адреса больше, чем старые адреса IPv4.

(Обратите внимание, что IPv6 обычно использует не более 39 символов, но также существует специальная нотация IPv6 для IPv4-адресов, которая в полной форме может быть до 45 символов. Поэтому, если вы знаете, что делаете, вы можете использовать 39 символов, но если вы просто хотите установить и забыть, используйте 45).

Emil Vikström 09 июнь 2010, в 05:46
Поделиться

Хороший ответ! Я уже использую $ _SERVER [‘REMOTE_ADDR’] для моего сервера, и мне нравится, что вы включили другой способ, плюс преимущества и недостатки.

Blue 22 дек. 2014, в 21:46

Примечание. REMOTE_ADDR может не содержать реального IP-адреса TCP-соединения. Это полностью зависит от вашего SAPI. Убедитесь, что ваш SAPI правильно настроен так, что $_SERVER[‘REMOTE_ADDR’] фактически возвращает IP-адрес TCP-соединения. В противном случае это может привести к серьезным уязвимостям, например, StackExchange, используемый для предоставления доступа администратора , проверяя REMOTE_ADDR чтобы увидеть, соответствует ли он «localhost», к сожалению, конфигурация SAPI . . .

Pacerier 29 июнь 2015, в 04:26

. . была уязвимость (она принимает HTTP_X_FORWARDED_FOR качестве входных данных), которая позволяет не администраторам получать доступ администратора путем изменения заголовка HTTP_X_FORWARDED_FOR . Также см. Blog.ircmaxell.com/2012/11/anatomy-of-attack-how-i-hacked.html

Pacerier 29 июнь 2015, в 04:26
Что такое $_SERVER[‘HTTP_CLIENT_IP’]) ?
stack 21 нояб. 2015, в 14:28
Emil Vikström 11 нояб. 2016, в 11:22
chirag satapara 11 нояб. 2016, в 11:48
chirag satapara 11 нояб.

Читайте также:  Как оформить детские для ИП

2016, в 11:49

Это правильный IP — адрес клиента. Google подключается к вашему серверу, чтобы вы получили их IP-адрес, потому что Google является клиентом . Они делают это для защиты IP-адресов своих пользователей.

Emil Vikström 11 нояб. 2016, в 15:45

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

siliconrockstar 12 май 2018, в 01:31
Показать ещё 7 комментариев

$_SERVER[‘REMOTE_ADDR’] может фактически не содержать реальных IP-адресов клиента, поскольку он даст вам прокси-адрес для клиентов, подключенных через прокси-сервер, например. Это может но, быть может, вы действительно хотите, в зависимости от того, что вы делаете с IP-адресами. Кто-то частный адрес RFC1918 может не принести вам никакого пользы, если вы скажете, пытаясь узнать, откуда происходит ваш трафик, или помните, какой IP-адрес был последним подключен к пользователю, где общий IP-адрес прокси-сервера или шлюза NAT может быть больше подходящий для хранения.

Существует несколько HTTP-заголовков, таких как X-Forwarded-For , которые могут устанавливаться или не устанавливаться различными прокси-серверами. Проблема в том, что это просто HTTP-заголовки, которые могут быть установлены кем угодно. Там нет гарантии их содержания. $_SERVER[‘REMOTE_ADDR’] — это фактический физический IP-адрес, на который веб-сервер получил соединение и ответ будет отправлен.

Все остальное — это произвольная и добровольная информация. Есть только один сценарий, в котором вы можете доверять этой информации: вы контролируете прокси-сервер, который устанавливает этот заголовок. Значение только в том случае, если вы знаете 100%, где и как был настроен заголовок, если вы прислушаетесь к нему для чего-то важного.

Сказав это, здесь приведен пример кода:

if (!empty($_SERVER[‘HTTP_CLIENT_IP’])) < $ip = $_SERVER[‘HTTP_CLIENT_IP’]; >elseif (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’])) < $ip = $_SERVER[‘HTTP_X_FORWARDED_FOR’]; >else

Примечание редактора: Использование приведенного кода имеет последствия для безопасности. Клиент может установить всю информацию заголовка HTTP (т.е. $_SERVER[‘HTTP_. ) на любое произвольное значение, которое он хочет. Таким образом, гораздо более надежно использовать $_SERVER[‘REMOTE_ADDR’] , поскольку пользователь не может установить его.

Tim Kennedy 11 сен. 2008, в 05:18
Поделиться

НЕ используйте приведенный выше код, если вы точно не знаете, что он делает! Я видел МАССОВЫЕ дыры в безопасности из-за этого. Клиент может установить заголовок X-Forwarded-For или Client-IP на любое произвольное значение, которое он хочет. Если у вас нет доверенного обратного прокси-сервера, вы не должны использовать ни одно из этих значений.

Janos Pasztor 25 июнь 2013, в 14:37

Что касается комментария Яношена, одним из вариантов является PHP filter_var ($ _ SERVER [‘REMOTE_ADDR’], FILTER_VALIDATE_IP).

lostphilosopher 27 янв. 2014, в 21:28

X-Forwarded-For может содержать несколько IP-адресов, разделенных запятой; и должен действительно быть «проанализирован», а не принят по номиналу (AFAIK, он почти никогда не содержит ни одного IP).

Martin Tournoij 13 фев. 2014, в 14:51
Tim Seguine 16 апр. 2014, в 08:14

Читайте также:  Порядок продажи имущества при банкротстве индивидуального предпринимателя

Не используйте этот код выше. Это может быть подделка из HTTP_X_FORWARDED_FOR, откуда исходит от поддельного адреса с использованием прокси. Пожалуйста, не используйте код выше!

Marin Sagovac 16 апр. 2014, в 15:06
Geo C. 21 май 2014, в 21:13
Tim Seguine 22 май 2014, в 10:51
Tim Kennedy 22 май 2014, в 12:49

Для сайта масштабного размера перед серверами веб-приложений будут установлены балансировщики нагрузки и / или обратные прокси-серверы. Необходимо настроить эти балансировщики нагрузки или прокси-серверы для удаления любого внешнего заголовка X-Forwarded-For и вместо этого вставить свой собственный IP-адрес, который они видят для подключающегося клиента.

Jon Watte 01 дек. 2014, в 06:31

Кроме того, если ваш сервер приложений имеет CDN (Akamai, CloudFlare или что-то еще), то удаленный IP-адрес, который вы видите, может быть из CDN. Затем вам нужно будет убедиться, что CDN вставляет заголовок, которому вы можете доверять, и который не может быть подделан злонамеренными клиентами, которые выкалывают прямо на ваш сервер.

Jon Watte 01 дек. 2014, в 06:32

Спасибо Эмилю Викстрёму и вам, оба ответа великолепны, но, по моему мнению, ваш лучший. Также отличные комментарии.

John Boe 28 март 2016, в 19:06

зарегистрируйте их все, и затем вы решите, что делать со значениями. возможно, вы сможете отфильтровать мусор или зарегистрировать некоторые из этих IP-адресов как недействительные

Источник: overcoder.net

ip адрес клиента в php

ip адрес клиента в php

Часто пользователь желает через PHP узнать IP-адрес посетителя. Сделать это совсем несложно — для этого необязательно изучать PHP. Достаточно наличие определенного скрипта, который и будет представлен в данной статье.

Итак, строка в скрипте, которая необходима для того, чтобы выяснить IP-адрес, выглядит следующим образом:

$ip = $_SERVER[‘REMOTE_ADDR’] echo ‘Ваш IP: ‘.$ip;

Данному пользователю покажут его IP. Примерно так: Ваш IP: 321.33.111.222

Также вы можете составить скрипт, с помощью которого админ-панель будет доступна исключительно администратору сайта, однако подойдет он только владельцам постоянных IP-адресов. Чтобы этого добиться, вставьте в начало .php файлов следующий код:

$admin = ‘123.45.100.200’; // Тут IP администратора if($_SERVER[‘REMOTE_ADDR’]!=$admin) // Проверка, админ ли это ; // Если нет, то выводится надпись // и завершается выполнение скрипта

Источник: daruse.ru

Внешний и внутренний IP-адрес компьютера: как узнать, зачем нужны

#ОкейГик

Каждый компьютер имеет 2 IP-адреса, которые определяют его положение в интернете и локальной сети. Внешний IP-адрес считается основным, и он требуется для выполнения ряда задач. Его необходимо знать, чтобы установить VPN-соединение с локальной сетью, объединить компьютеры для совместной игры через интернет, напрямую соединить PC друг с другом в различных программах и многого другого. Внутренний IP-адрес используется гораздо реже, и он определяет положение компьютера в локальной сети, к которой он сейчас подключен. Его знание потребуется для выполнения различных действий внутри сети – подключения беспроводного принтера, сканера или другого оборудования.

Читайте также:  Добровольное пенсионное обеспечение для самозанятых сколько платить

Как узнать внешний IP-адрес компьютера

Внешний IP-адрес компьютера можно узнать с помощью различных сторонних программ и в интернет браузере на специализированных сайтах. Делается это просто и бесплатно.

Специальных сервисов, определяющих IP-адрес клиента в интернете множество, но наиболее удобным можно считать непосредственно поиск yandex. Мало кто знает, что если в поисковой строке yandex ввести буквы «IP», перед первым результатом поиска появится IP-адрес компьютера, с которого был сделан запрос. Подобным образом работает yandex и некоторые другие поиски, основанные на нем, тогда как google не предоставляет информация об ip-адресе при вводе соответствующего запроса.

Как узнать внешний IP-адрес компьютера

Если требуется более детальная информация о компьютере, к примеру, не только IP-адрес, но и название провайдера, то можно воспользоваться сторонними сервисами или в yandex нажать на кнопку «Узнать все о своем соединении». Наиболее известными сторонними сервисами являются 2ip.ru и ip-ping.ru. Перейдя по данным адресам, вы сразу увидите IP-адрес компьютера и дополнительную информацию о текущем подключении.

Как узнать внешний IP-адрес компьютера

Как узнать внутренний IP-адрес компьютера

Определить внутренний IP-адрес компьютера можно в подсети провайдера или в личной локальной сети, созданной при помощи роутера. Если компьютер подключен к интернету через enternet кабель, то через командную строку можно сразу посмотреть его адрес в подсети провайдера. При этом в том случае, когда компьютер получает интернет от роутера, соединяясь с ним через Wi-Fi, определить в командной строке можно только адрес PC в личной локальной сети, созданной при помощи маршрутизатора.

Чтобы узнать внутренний IP-адрес компьютера через командную строку необходимо сделать следующее:

Как узнать внутренний IP-адрес компьютера

  1. Запустите командную строку от имени администратора;
  2. Далее в открывшемся окне пропишите команду «ipgonfig /all» без кавычек. Обратите внимание на пробел, который необходимо установить до слеша;
  3. После этого откроется окно, в котором будет показана различная информация о текущем подключении компьютера к интернету. Здесь можно посмотреть mac-адрес, открытые шлюзы, подключенное оборудование и много другое. Внутренний IP-адрес компьютер отображается в графе IPv4-адрес, при этом он будет отображаться возле названия устройства, через которое установлено соединение.

Если компьютер подключен к интернету через Wi-fi, при этом требуется узнать внутренний IP-адрес подсети провайдера, сделать это можно через настройки роутера. У каждого маршрутизатора свой собственный способ определения адреса подсети, но чаще всего его можно найти непосредственно в одном из пунктов меню настройки роутера.

Как узнать внутренний IP-адрес компьютера

Обратите внимание, что в параметрах роутера можно увидеть множество различных адресов. Конкретно адрес подсети, выданный провайдером, чаще всего начинается на цифру «10» и заканчивается не единицей. Поскольку остальные адреса в таблице маршрутизатора в большинстве случаев не подходит под данное описание, найти требуемый не составит труда.

Источник: okeygeek.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
Бизнес для женщин