Библиотека для определение города, страны, региона пользователя по IP (Joomla, WordPress, Bitrix - cms распознаётся автоматически)Полностью бесплатная!Версия Joomla теоретически любая!!! А не только 2.5. Bitrix, Wordpress аналогично.
Написал библиотеку для получения гео-информации по IP-адресу, причем единую для Joomla, WordPress и Bitrix(по битриксу сразу же отдельно оговорюсь, что уже после того как написал узнал что в Bitrix есть встроенный функционал, по ссылке на статью про это тоже будет).
Библиотека запрашивает по API информацию о необходимом IP адресе у удалённого сервера, назад получает стек адресов к которым относится IP, так же страну, регион и город(если удалось определить), и сохраняет эту информацию с базе данных Вашего сайта, при этом используя функционал указанных Выше CMS для взаимодействия с базой данных. Сохраняется информация с целью сокращения времени работы, а так же для избежания создания излишних запросов к удалённому серверу. Соединение с базой данных для указанных CMS прописывать не нужно, поскольку библиотека распознаёт CMS и использует те же настройки соединения с базой данных что и CMS. Кроме того библиотека способна самостоятельно подключить фреймворк, если работа с библиотекой производиться из стороннего php файла.
Подводя итог такой подход позволяет:
1) легко установить библиотеку для Joomla, Wordpress, Bitrix просто разместив один файл на сервере и подключив его через require_once;
2) не требует отдельно прописывать соединение с базой данных, поскольку библиотека самостоятельно определит CMS и способ подключения к базе данных;
3) таблица в базе данных создаётся автоматически, поэтому Вам не потребуется заходить в phpMyAdmin при установке;
4) не перегружается удалённый сервер предоставляющий информацию по API, так как после обращения информация о стеке IP-адресов сохраняется в Вашей базе данных и в следующий раз информация берётся из её;
5) сокращается вероятность долгой загрузки сайта, если удалённый сервер предоставляющий информацию по API будет висеть
(поскольку я не как тот менеджер, который говорит только о плюсах, отмечу: подвисать Ваш сайт в случаи если удалённый api сервер висит всё же может, поскольку если информация о IP не была получена она не будет сохранена в базу и при следующем использовании библиотеки опять будет производиться попытка загрузить с удалённого сервера, тем не менее о этом скорее всего отдельно напишу решена ли ситуация и как, в целом планируется ряд доработок, поэтому лучше читать актуальную информацию с страницы библиотеки, здесь же я рассказываю о бете версии);
6) не требуется размещение значительного количества информации о всех IP адресах в Вашей базе данных, информацию в которой к тому же требовалось бы обновлять - информация запрашивается с удалённого сервера только для IP-адресов информация о которых Вам нужна
На момент написания данного ответа в качестве удалённого сервера предоставляющего данные использовался
ipGeoBase но есть планы использовать иной(
актуальную информацию лучше читать на странице библиотеки)
Немного о настройкахна момент написания данного ответа на форуме:
1) настраивается имя таблицы в которой будут храниться данные(к нему так же в начале будет добавлен префикс cms, имя указывается без префикса)
2) время хранения информации о IP адресе в базе данных
пример использования(работает для указанных CMS без подключения файлов ферймворка - он распознаётся и подключается атвоматически)
<?php
require_once "nikolaevevgeGeoIp.php";// если библиотека в той же директории, что и вызываемый php файл
var_dump(nikolaevevgeGeoIp::getInfoByIp("88.85.172.134"));Библиотека и актуальная информация тут:
http://blog.ivru.net/?id=82