Упражнения PHP: Получить IP-адрес клиента
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 программирования