кодесурса
«PHP

Упражнения PHP: Получить IP-адрес клиента

script1adsense2code
script1adsense3code

PHP: упражнение 5 с решением

Напишите скрипт PHP, чтобы получить IP-адрес клиента.

IP-адрес. Адрес Интернет-протокола (IP-адрес) - это цифровая метка, назначаемая каждому устройству, подключенному к компьютерной сети, которая использует Интернет-протокол для связи. IP-адрес выполняет две основные функции: идентификацию хоста или сетевого интерфейса и адресацию местоположения.

Протокол Интернета версии 4 (IPv4) определяет IP-адрес как 32-разрядное число. Однако из-за роста Интернета и истощения доступных адресов IPv4 в 1995 г. была разработана новая версия IP (IPv6), использующая 128-битный IP-адрес, и стандартизирована в декабре 1998 г. В июле 2017 г. окончательное определение протокола было опубликовано. Развертывание IPv6 продолжается с середины 2000-х годов.

IP-адреса обычно записываются и отображаются в удобочитаемых для человека обозначениях, таких как 172.16.254.2 в IPv4 и 2001: db8: 0: 1234: 0: 567: 8: 1 в IPv6. Размер префикса маршрутизации адреса обозначается в нотации CIDR путем добавления к адресу суффикса с числом значащих бит, например, 192.168.1.16/24, что эквивалентно исторически используемой маске подсети 255.255.255.0.

Пространство IP-адресов управляется глобально Управлением по присвоению номеров в Интернете (IANA) и пятью региональными интернет-регистратурами. На своих назначенных территориях они несут ответственность за назначение конечным пользователям и местным интернет-реестрам, таким как интернет-провайдеры. IPAN-адреса были распределены IANA в RIR блоками по примерно 16,8 миллионов адресов каждый. Каждый интернет-провайдер или администратор частной сети назначает IP-адрес каждому устройству, подключенному к его сети.

Пример решения: -

PHP-код:

<?php
//whether ip is from share internet
if (!empty($_SERVER['HTTP_CLIENT_IP']))   
  {
    $ip_address = $_SERVER['HTTP_CLIENT_IP'];
  }
//whether ip is from proxy
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))  
  {
    $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
  }
//whether ip is from remote address
else
  {
    $ip_address = $_SERVER['REMOTE_ADDR'];
  }
echo $ip_address;
?>

Пример вывода:

Посмотреть вывод в браузере

Блок - схема:

«Блок-схема:

Редактор кода PHP:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Предыдущий: Создайте простую HTML-форму, примите имя пользователя и отобразите имя с помощью оператора PHP echo.
Далее: Напишите простой скрипт обнаружения браузера PHP.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code