Вступ до 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.
Код:
<_?phpecho '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.
Код:
<_?phpfunction 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-адресі. Ви також можете ознайомитись з іншими нашими пов’язаними статтями, щоб дізнатися більше -
- Підключення до бази даних PHP
- Що таке TCP / IP?
- Програмування Socket в PHP
- Паліндром у PHP
- Паліндром у С ++
- Паліндром у JavaScript
- Топ-12 порівнянь Mac та IP-адрес
- Програмування сокетів в Python
- Що таке IPv4?