PHP визначення IP або звідки родом ваші користувачі

31

Від автора: в інтернеті ваше ім’я та прізвище нічого не значать. Тут для визначення юзера використовується IP. Знаючи його, можна встановити місто і країну проживання людини, використовуваний браузер…. Не вірите? Все це ви зрозумієте, коли вивчите в PHP визначення IP.

IP і не тільки

Для отримання мережевої інформації користувача в PHP існує глобальний масив $_SERVER. Давайте виведемо його вміст на екран:

PHP определение IP

Зрозуміло, що шукати певне значення в цьому «пишності» практично нереально, тому визначення IP адреси PHP ми поставимо більш точно:

PHP определение IP

Тепер ми знаємо, що IP записується в REMOTE_ADDR. Звідки вона береться? Всі ці дані клієнт переказує під час встановлення з’єднання. Ця змінна задається в настройках сервера на стороні клієнта.

Деякі для визначення міста по IP в PHP використовують значення HTTP-заголовків, але це в корені невірно. Будь-який користувач може прописати значення заголовків для свого хоста. Також слід розуміти, який IP вам потрібен. Наприклад, значення HTTP_X_FORWARDED_FOR містить адресу віддаленого клієнта, його проксі або може бути взагалі порожнім. Коротше, тут розбиратися не на один вечір вистачить :) .

Що стосується браузера користувача, то його можна спробувати визначити за допомогою функції get_browser (). Але для її застосування на стороні клієнта в файлі php.ini повинен бути прописаний шлях до browscap.ini. Інакше отримаєте подібне попередження:

PHP определение IP

Дізнаємося країну юзера і не тільки

Тепер з допомогою PHP визначимо країну по IP. Але для початку проведемо огляд всіх рішень у цій сфері. Велика частина подібних скриптів використовує згаданий нами елемент глобального масиву $_SERVER REMOTE_ADDR. Тепер починається найголовніше.

Можна використовувати вже готові бібліотеки, в яких отриманий IP просто сортується залежно від свого значення. Сподіваюся, для вас не є секретом, що це значення присвоюється клієнту (хосту) в залежності від його геолокації: країни, міста і регіону проживання користувача. На аналізі цих діапазонів і побудований весь функціонал.

Також застосовуються різні сторонні сервіси на кшталт ip-whois.net. З допомогою скрипта ви передаєте значення IP, а той повертає вам дані про знаходження хоста.

Крім цього частина спеціалізованих бібліотек поставляється зі своєю базою даної, в таблицях яких містяться всі розсортовані (з географії) діапазони IP. Я не буду їх перераховувати. Таких у Мережі зараз вистачає.

Яким варіантом скористатися, вирішувати вам. Застосування стороннього сервісу дозволить знизити витрати ресурсів і навантаження на ваш сайт. При цьому використання бібліотеки з базою позбавить від проблем з підключенням.

В наступному скрипті для визначення регіону по IP PHP використовується бібліотека TabGeo. Зараз її офіційний ресурс не працює. Я скачав бібліотеку з GitHub, але використовував тільки файл country.php. У ньому за отриманим IP визначається країна проживання користувача. І потім (по ISO-кодом) можна реалізувати редиректи на різні сторінки сайту:

Файл бібліотеки можна завантажити за цим посиланням. Приблизно таким же чином створюється PHP скрипт для визначення оператора по IP. На сьогодні все! Сподіваюся, тепер ви зможете дізнатися про своїх користувачів набагато більше.