Php - отримуємо гео-інфо користувача по ip, atoumus blog

Позиціонує себе як найшвидший, в порівнянні з такими конкурентами як: GeoIP і Sypex Geo. Але швидкість досягається зарахунок малого розміру бази, в слідстві чого ця бібліотека визначає тільки код країни.

Поширюється у вигляді composer пакета + бінарна БД в своєму власному форматі.

Для установки цієї бібліотеки потрібно всього лиш підключити композер пакет:

При цьому встановиться як PHP бібліотека так і сама БД:

Php - отримуємо гео-інфо користувача по ip, atoumus blog

Приклад використання в PHP скрипт:

Варто зауважити, що TabGeo дозволяє отримати тільки двозначний код країни в форматі ISO 3166-1 alpha-2. Якщо вам потрібно щось більше, наприклад визначити регіон, місто, тимчасову зону, або ін. То потрібно використовувати наприклад той же GeoIP, тому що він дозволяє все це визначити.

Онлайн сервіси для геотаргетинга

В якості альтернативи можна використовувати спеціальні онлайн сервіси. Принцип їх роботи простий: передаємо GET параметром IP і у відповідь отримуємо гео-інфу в форматі JSON або XML.

Але є і суттєві недоліки:

Ось кілька таких онлайн сервісів:

висновок

  • полегшений, тільки зі списком країн, як правило в назві містить Country;
  • повніший, в якому крім країн також міститься інфо про великі міста, як правило в назві містить City і більше важить;

Якщо немає можливості встановити GeoIP у вигляді PHP розширення, то можна використовувати один з composer пакетів: GeoIP, Sypex Geo, IP2LOCATION або TabGeo.

Якщо ж використання composer пакета з якоїсь причини не можливо, тоді залишається використовувати онлайн сервіси. Але обов'язково потрібно зробити кешування запитів на ці сервіси в свою БД. Кешування потрібно для того що б не відправляти один і той же запит по багато разів. Досить один раз отримати гео-інфу по цікавого ІП через онлайн сервіс, після чого зберегти її до себе в БД, і далі брати вже з БД. Таким чином ви зменшите кількість запитів на онлайн сервіс і зменшите вірогідність того що онлайн сервіс вас заблокує за множинні запити.

Варто зауважити, що майже у всіх перерахованих вище бібліотек є безкоштовні і платні версії. У платних версіях вам буде доступно більше гео інформації ніж в безкоштовних.