Як отримати геолокацію з IP у PHP
Ви шукаєте спосіб отримати геолокацію користувача з IP-адреси в PHP? Використовуючи Geolocation, ви дізнаєтесь, де розташовані відвідувачі вашого веб-сайту. Його можна використовувати для цільової аудиторії. Залежно від місцезнаходження користувача ви можете показати їм відповідний вміст.
Ми знаємо, як знайти позицію користувача, доступний HTML5 API геолокації. Але цей API працює на основі дозволу. Він відкриває вікно користувача та запитує його дозволи, тоді тільки це працює.
Для подолання цієї ситуації доступна одна послуга ipstack. У цій статті ми вивчаємо, як отримати геолокацію з IP у PHP за допомогою служби ipstack.
Отримайте ключ API
Для початку потрібно спочатку зареєструватися в ipstack. ipstack надає різні рівні послуг, від безкоштовних до корпоративних. Якщо ви користуєтесь цією послугою вперше, то рекомендуємо спочатку скористатися безкоштовними тарифами. На момент написання цієї статті безкоштовна послуга дозволяє 10000 запитів на місяць. Це означає, що ви можете щомісяця безкоштовно перевіряти геолокацію 10000 IP.
Після реєстрації в ipstack ви отримаєте свій ключ доступу. Цей ключ потрібен, коли ми будемо викликати API для ipstack.
Нижче наведено знімок екрана інформаційної панелі ipstack, куди ви можете скопіювати ключ доступу.
Отримати геолокацію з IP у PHP
На даний момент ми створили обліковий запис у ipstack і отримали ключ доступу. Тепер ми можемо почати користуватися їхньою послугою та отримати геолокацію з IP-адреси. Оскільки нам потрібно дати виклик API ipstack, ми використовували б PHP cURL для виклику API. Користувач також може використовувати Guzzle замість cURL.
Скажімо, нам потрібно знайти геолокацію IP „103.47.153.189″. Тому ми напишемо код для нього, як показано нижче.
<?php
// set API Access Key
$access_key = 'YOUR_ACCESS_KEY';
// set phone number
$ip_address = '103.47.153.189';
// Initialize CURL:
$ch = curl_init('http://api.ipstack.com/'. $ip_address .'?access_key='. $access_key);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Store the data:
$json = curl_exec($ch);
curl_close($ch);
?>
Натомість ви отримаєте відповідь на зразок:
{
"ip":"103.47.153.189",
"type":"ipv4",
"continent_code":"AS",
"continent_name":"Asia",
"country_code":"IN",
"country_name":"India",
"region_code":"MH",
"region_name":"Maharashtra",
"city":"Pune",
"zip":"411001",
"latitude":18.5333,
"longitude":73.8667,
"location":{
"geoname_id":1259229,
"capital":"New Delhi",
"languages":[
{
"code":"hi",
"name":"Hindi",
"native":"u0939u093fu0928u094du0926u0940"
},
{
"code":"en",
"name":"English",
"native":"English"
}
],
"country_flag":"http://assets.ipstack.com/flags/in.svg",
"country_flag_emoji":"ud83cuddeeud83cuddf3",
"country_flag_emoji_unicode":"U+1F1EE U+1F1F3",
"calling_code":"91",
"is_eu":false
}
}
Ви можете побачити, скільки інформації ми можемо отримати, просто надіславши IP-адресу. Ми майже отримуємо всю інформацію, яка може знадобитися, з ІР. Користувач також може надсилати кілька IP-адрес, розділяючи їх комами.
Ми сподіваємось, ви зможете дізнатися про те, як отримати геолокацію з IP у PHP. Ми хотіли б почути ваші думки в розділі коментарів нижче.
Пов’язані статті
- Знайдіть геолокацію за допомогою IP-адреси безкоштовно в PHP
- mailboxlayer – безкоштовний та потужний API для перевірки правильності електронної пошти (справжня електронна пошта)
- Kickbox – бібліотека для перевірки електронної пошти в реальному часі для PHP