Вступ до IP-адреси

Щоб дізнатися "Отримати IP-адресу в PHP", спочатку ми вивчимо IP-адресу. IP-адреса або адреса Інтернет-протоколу - це адреса, яка є числовою адресою або міткою, яку має кожна система або пристрій, підключений до мережі. IP-адреса призначається кожному такому пристрою. Ці пристрої використовують Інтернет-протокол для будь-якого типу зв'язку.

Версія IP

Нижче пунктів Поясніть версію IP:

  • Версія IP визначається відповідно до біту етикетки інтернет-протоколу. Наприклад, IPv4, що є більш ранньою версією, визначає 32-бітну адресу інтернет-протоколу. З ростом Інтернету з'явився IPv6, який визначає 128-бітну мітку IP-ярлика. IPv6 використовується з 1995 року по сьогодні. Адреса Інтернет-протоколу написана зрозумілою для людини мовою. Приклад IPv4 такий: 170.17.260.2, а приклад для IPv6 - 2001: db8: 2: 1434: 1: 587: 5: 2.
  • Простір, набутий адресами інтернет-протоколів, управляється у всьому світі. Реєстр, який називається Інтернет-службою присвоєних номерів разом з іншими п'ятьма регіональними регістрами, робить можливим управління простором для адрес Інтернет-протоколів. 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') для визначення ІР-адреси сервера в 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") для визначення ІР-адреси сервера в 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. Програмування Socket в PHP
  4. Паліндром у PHP
  5. Паліндром у С ++
  6. Паліндром у JavaScript
  7. Топ-12 порівнянь Mac та IP-адрес
  8. Програмування сокетів в Python
  9. Що таке IPv4?