Отримання публічної IP-адреси сервера за допомогою PHP

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 25 грудня, 2024
Досліджуйте нову бібліотеку PHP PublicIP, яка дозволяє швидко і надійно отримувати публічну IP-адресу сервера! У нашій статті ви дізнаєтеся про налаштування різних провайдерів та команди CLI, які спростять вашу роботу

PublicIP — це бібліотека PHP, яка швидко і надійно визначає публічну IP-адресу сервера. У цього пакету є налаштована конфігурація за замовчуванням, яка забезпечує найшвидших та найнадійніших провайдерів. Проте ви можете налаштувати та використовувати інших провайдерів:

use KnotsPHP\PublicIP\Finders\PublicIP;
use KnotsPHP\PublicIP\Finders\PublicIPv4;
use KnotsPHP\PublicIP\Finders\PublicIPv6;

$ipv4 = PublicIPv4::get(); // отримує вашу IPv4
$ipv6 = PublicIPv6::get(); // отримує вашу IPv6
$ipv4or6 = PublicIP::get(); // отримує або IPv4, або IPv6

Цей пакет надає два основні методи для отримання IP-адреси сервера, включаючи провайдери dig та HTTP whoami. Якщо вам потрібен більш детальний контроль, ви можете визначити, який "fetcher" використовувати, і/або який DNS-провайдер:

use KnotsPHP\PublicIP\Enums\DnsProvider;
use KnotsPHP\PublicIP\Fetchers\DigFetcher;
use KnotsPHP\PublicIP\Finders\PublicIPv4;

$ipv4 = PublicIPv4::finder()
    ->addFetcher((new DigFetcher())
        ->from(DnsProvider::OpenDNS)))
    ->fetch();

// Безпосереднє використання Fetcher
$ipv4 = (new DigFetcher)
   ->from(DnsProvider::Cloudflare)
   ->fetch(IpVersion::v4);

Пакет також надає інтерфейс командного рядка (CLI) для отримання публічної IP-адреси поточної машини. Це може бути корисно під час налаштування додатків, коли потрібно знати IP-адресу для правильної конфігурації:

vendor/bin/publicip --ipv4
vendor/bin/publicip --ipv6

Дізнатися більше про цей пакет, отримати повні інструкції з встановлення та переглянути джерела коду можна на GitHub. Рекомендую також ознайомитися з документацією в README, щоб переглянути список провайдерів dig та підтримуваних HTTP whoami. Встановити цей пакет у вашому проєкті можна через Composer за командою:

composer require knotsphp/publicip

# Бонус

Особисто я маю alias у Bash, який використовую для швидкого отримання моєї публічної IP-адреси в командному рядку. Ніколи не знаєш, коли вона знадобиться для VPN або списку доступу. Це частина моїх dotfiles, яка дозволяє швидко отримувати мою IP-адресу через dig:

alias ip='dig @resolver4.opendns.com myip.opendns.com +short'
alias ip6='dig @resolver1.ipv6-sandbox.opendns.com AAAA myip.opendns.com +short -6'

Ці alias я знайшов у відповіді на StackExchange.