Введение в IP-адрес
Чтобы узнать «Получить IP-адрес в PHP», сначала мы изучим IP-адрес. IP-адрес или адрес Интернет-протокола - это адрес, который представляет собой числовой адрес или метку, которую имеет каждая система или устройство, подключенное к сети. IP-адрес назначается каждому такому устройству. Эти устройства используют интернет-протокол для любого типа связи.
IP версия
Ниже приведены объяснения версии IP:
- Версия IP определяется в соответствии с битом метки интернет-протокола. Например, IPv4, более ранняя версия, определяет адрес интернет-протокола с 32-разрядным номером. С ростом Интернета появилась IPv6, которая определяет метку IP 128-битного числа. IPv6 используется с 1995 года по сегодняшний день. Адрес интернет-протокола написан понятным человеку языком. Ниже приведен пример IPv4: 170.17.260.2, а для IPv6 - 2001: db8: 2: 1434: 1: 587: 5: 2.
- Пространство, полученное по адресам интернет-протокола, управляется глобально. Реестр, который называется Internet Assigned Numbers Authority, наряду с другими пятью региональными реестрами делает возможным управление пространством для адресов интернет-протоколов. IANA отвечает за выделение и управление пространствами адресов интернет-протокола для всех конечных пользователей и других интернет-провайдеров в указанных областях или территориях. Аналогично, всем устройствам, подключенным к сети интернет-провайдера, присваивается уникальный адрес интернет-протокола.
- Существуют статические адреса интернет-протокола, которые не часто меняются, они предоставляются серверам. Интернет-провайдеры предоставляют конкретный и уникальный адрес интернет-протокола машине, которая использует модем. Этот IP-адрес является уникальным для сеанса и может измениться для следующего сеанса.
Идентификация и возврат IP-адреса в PHP
В целях безопасности сайты собирают IP-адреса посетителей своих сайтов. Есть простой способ получить этот адрес в PHP. В PHP есть определенный массив, который помогает и возвращает IP-адрес вашего компьютера. Массив известен как $ _SERVER. Он содержит информацию о путях, заголовках и местах расположения скриптов. Веб-сервер создает информацию, необходимую для массива $ _SERVER. Иногда этот сервер не создает или не предоставляет всю информацию, требуемую для массива, они могут ее пропустить. Таким образом, есть еще один массив, который можно использовать в таких случаях. Он записывается как «SERVER_ADDR». Этот массив возвращает IP-адрес сервера, на котором выполняется скрипт.
Методы, используемые для получения IP-адреса в PHP
Ниже приведен пример, используемый для получения IP-адреса в php:
Примеры № 1
Самый простой способ - использовать $ _SERVER с 'REMOTE_ADDR', он вернет IP-адрес пользователя, который в данный момент просматривает страницу.
- Пример использования ('REMOTE_ADDR') для определения IP-адреса сервера в PHP.
Код:
<_?phpecho 'User IP - '.$_SERVER('REMOTE_ADDR');
?>
Выход:
Пример № 2
Другой метод, называемый SERVER_ADDR, также используется для получения IP-адреса сервера.
- Пример использования ('SERVER_ADDR') для определения IP-адреса сервера в PHP.
Код:
<_?php// PHP program to retrieve server's Internet Protocol address
// Creating a variable to store the server address
$ip_server = $_SERVER('SERVER_ADDR');
// Displaying the retrieved address
echo "Server IP Address is: $ip_server";
?>
Выход:
Пояснение к вышеуказанной программе: приведенный выше пример массива ($ _SERVER) полезен, если машина не подключена через прокси. Если машина подключена к Интернету через прокси-сервер или через прокси-сервер, $ _SERVER ('REMOTE_ADDR') в PHP не возвращает правильный IP-адрес. Он просто возвращает IP-адрес прокси-сервера и компьютера пользователя или клиента. В этой ситуации другой метод используется для получения правильного адреса.
Пример № 3
Следующий пример используется для возврата правильного и реального IP-адреса, даже если машина скрывается за прокси-сервером. Он использует дополнительную пару переменных SERVER, которые доступны для получения точного IP-адреса системы или компьютера клиента. Они известны как HTTP_CLIENT_IP и HTTP_X_FORWARDED_FOR.
- Пример использования ('HTTP_CLIENT_IP') и ('HTTP_X_FORWARDED_FOR') для определения IP-адреса сервера в PHP.
Код:
<_?phpfunction RetrieveUserIP()
(
if(!empty($_SERVER('HTTP_CLIENT_IP')))
(
$address=$_SERVER('HTTP_CLIENT_IP');
)
elseif(!empty($_SERVER('HTTP_X_FORWARDED_FOR')))
(
$address=$_SERVER('HTTP_X_FORWARDED_FOR');
)
else
(
$address=$_SERVER('REMOTE_ADDR');
)
return $address;
)
echo 'User IP Address is'.RetrieveUserIP();
?>
Выход:
Если нужно понять последовательность действий приведенного выше кода, можно обратиться к следующей блок-схеме для того же.
Пояснение к вышеуказанной программе: В приведенном выше примере для получения IP-адреса используются две переменные («HTTP_CLIENT_IP») и («HTTP_X_FORWARDED_FOR»). В программе мы делаем первую попытку напрямую отключить его от компьютера, используя HTTP_CLIENT_IP. Если это недоступно, мы пытаемся «переадресовать для» IP, используя HTTP_X_FORWARDD_FOR. Когда оба условия обнуляются, мы пытаемся получить IP-адрес, используя переменную REMOTE_ADDR.
Очки, которые нужно помнить
Ниже следует запомнить пункты для получения IP-адреса в php:
1. Когда мы запустили приведенный выше код, возвращенный IP-адрес отображается как :: 1. Это известно как адрес обратной связи, который фактически представлен как ноль 127 раз, за которым следует 1, то есть (0000…. 127 раз… .1). Если мы хотим записать это, оно будет записано как:
2. Но в IPv6 мы можем представить этот большой ярлык в краткой форме. Таким образом, если в одном блоке есть все нули, его можно заменить одним нулем. Поэтому, если следовать приведенному выше правилу, оно становится: 0: 0: 0: 0: 0: 0: 0: 0001;
3. Опять же, нули можно убрать, и мы останемся с :: 0001
4. Что снова сводится к ' :: 1 ', таким образом, вывод.
Пояснение к приведенному выше коду: если они созданы для запуска, они могут не выдавать никаких выходных данных или возвращать ошибку времени выполнения, поскольку частные домены не предоставляют свои адреса интернет-протокола. Хотя приведенные выше коды выполняются на локальном сервере или локальном хосте, как мы использовали сервер WAMP, он будет обеспечивать вывод в соответствии с версией IP, то есть, если это IPv4, адрес протокола Интернета будет отображается как «127: 0: 0: 1», в то время как если это IPv6, адрес интернет-протокола будет отображаться, как указано выше, что «:: 1»
Рекомендуемые статьи
Это руководство по получению IP-адреса в PHP. Здесь мы обсуждаем Идентификацию IP-адреса, методы в IP-адресе и моменты, которые нужно запомнить в IP-адресе. Вы также можете просмотреть другие наши статьи, чтобы узнать больше -
- Соединение с базой данных PHP
- Что такое TCP / IP?
- Программирование сокетов в PHP
- Палиндром в PHP
- Палиндром в C ++
- Палиндром в JavaScript
- 12 лучших сравнений Mac с IP-адресами
- Программирование сокетов в Python
- Что такое IPv4?