Вы можете ознакомиться с спецификацией формата Sypex Geo 2.2.
Использование
1. Скопировать SxGeo.php и SxGeo.dat (или SxGeoCity.dat или другие базы) на сервер
2. Подключить файл SxGeo.php в свой скрипт, добавив строку
include("SxGeo.php");
3. Создать объект SxGeo
// Первый параметр - имя файла с базой (используется бинарная БД Sypex Geo)
// Второй параметр - режим работы:
// SXGEO_FILE (работа с файлом базы, режим по умолчанию);
// SXGEO_BATCH (пакетная обработка, увеличивает скорость при обработке множества
// IP за раз);
// SXGEO_MEMORY (кэширование БД в памяти, еще увеличивает скорость пакетной обработки,
// но требует больше памяти, для загрузки всей базы в память).
$SxGeo = new SxGeo(); // Режим по умолчанию, файл бд SxGeo.dat
//$SxGeo = new SxGeo('SxGeo.dat', SXGEO_BATCH | SXGEO_MEMORY); // Самый быстрый режим пакетный режим
4. Определяем страну c БД содержащими страны (SxGeo Country)
$country = $SxGeo->getCountry($ip); (возвращает двухзначный ISO-код страны)
// $SxGeo->getCountryId($ip); (возвращает номер страны)
4. Определяем город (SxGeo City, GeoLite City, IpGeoBase)
// $SxGeo->getCity($ip); (возвращает с краткой информацией, без названия региона и временной зоны)
// $SxGeo->getCityFull($ip); (возвращает полную информацию о городе и регионе)
$city = $SxGeo->get($ip); (выполняет getCountry либо getCity в зависимости от типа базы)
5. Если нужно освободить ресурсы - удаляем объект
unset($SxGeo);