...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как получить геолокацию с IP в PHP

72

Вы ищете способ получить геолокацию пользователя с IP-адреса в PHP? Используя геолокацию, вы будете знать, где находятся посетители вашего сайта. Его можно использовать в целях целевой аудитории. В зависимости от местоположения пользователя вы можете показывать ему соответствующий контент.

Мы знаем, что для определения местоположения пользователя доступен HTML5 Geolocation API. Но этот API работает на разрешительной основе. Он всплывает пользователя и запрашивает его разрешения, и только тогда он работает.

Чтобы преодолеть эту ситуацию, доступна одна услуга – ipstack. В этой статье мы изучаем, как получить геолокацию с IP в PHP с помощью службы ipstack.

Получить ключ API

Для начала вам нужно сначала зарегистрироваться на ipstack. ipstack предоставляет различные уровни услуг, от бесплатного до корпоративного. Если вы пользуетесь этой услугой впервые, мы рекомендуем сначала перейти на бесплатные тарифные планы. На момент написания статьи бесплатный сервис разрешал 10000 запросов в месяц. Это означает, что вы можете бесплатно проверять геолокацию 10000 IP-адресов каждый месяц.

После регистрации в ipstack вы получите ключ доступа. Этот ключ необходим, когда мы будем вызывать API для ipstack.

Ниже приведен снимок экрана вашей панели управления ipstack, на котором вы можете скопировать ключ доступа.

Как получить геолокацию с IP в PHP

Получение геолокации по 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-адресов через запятую.

Мы надеемся, что вы сможете узнать о том, как получить геолокацию по IP в PHP. Мы хотели бы услышать ваши мысли в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее