September 28, 2020

Определяем город по IP на PHP

Самый элементарный способ вычислить определить город посетителя сайта по IP - воспользоваться каким то готовым API.

Sypex Geo как раз предоставляет такую возможность. Сразу немного инфы по количеству запросов:

  • 10 000 запросов в месяц на каждого пользователя
  • если мы зарегистрируемся - у нас будет 30 000 запросов в месяц на каждого пользователя

Про платную подписку даже писать не буду, потому как такого количества с головой хватит большинству корпоративных сайтиков.

Итак, все что нам нужно - это закинуть им запрос. На пыхе (PHP), можно написать так:

if($request = filegetcontents("https://api.sypexgeo.net/json/".$SERVER['REMOTEADDR']))
{
$array = json_decode($request);
$geoipcity = $array->city->name_en;
}

Где $SERVER['REMOTEADDR'] - IP нашей жертвы.

Ответ нам придет такой (в JSON):

JSON ответа

При этом, на скрине не видно, но там еще валяется информация о стране (население, телефонный код, ближайшие соседи) и о регионе. Имена мы получаем сразу на 7 языках, что наверняка пригодится.


Подписаться на @wjourn