Введение в 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.

Код:

<_?php
echo '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.

Код:

<_?php
function 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-адресе. Вы также можете просмотреть другие наши статьи, чтобы узнать больше -

  1. Соединение с базой данных PHP
  2. Что такое TCP / IP?
  3. Программирование сокетов в PHP
  4. Палиндром в PHP
  5. Палиндром в C ++
  6. Палиндром в JavaScript
  7. 12 лучших сравнений Mac с IP-адресами
  8. Программирование сокетов в Python
  9. Что такое IPv4?