Небольшая задачка – получить информацию о стране и регионе по IP-адресу. Очень удобная вещь, если нужно к примеру отсеивать голоса в голосовании по географическому признаку (чаще всего все прокси-сервера находятся не в России).
Основной проблемой стала задача найти базу этих самых IP адресов, причем желательно всегда держать ее в актуальном состоянии. На помощь приходит сервис ipgeobase.ru.
Ipgeobase – это ресурс, предоставляющий базу данных IP-адресов, отсортированных по географическому признаку (Россия и Украина – с точностью до города, остальные по странам). База в формате TXT, скачать можно здесь.
Я написал на PHP два небольших скрипта: один (convert.php) конвертирует текстовый формат ipgeobase в базу данных sqlite3, а другой (check.php) – обрабатывает GET-запросы и возвращает информацию по IP-адресу в формате JSON.
Скачать geoip-1.0.1.7z (~2 Мб)
History:
Пример запроса check.php. По умолчанию скрипт смотрит IP-адрес пользователя, но так же можно вручную задать IP через GET-параметр ip (например, check.php?ip=2.2.2.2).
Пример ответа:
Так же Ipgeobase сделали свой сервис получения информации по IP через http в формате xml.