t e l i z e
_______________________
______ /_______
\ \ ___ // /
__ ____ __ / _____/ / ____
___/ ____/ _//____/ ______/_____ /__/ _//____
\__ ____ __/ __ __ ____ ____ __/ __///
/ _ |/ _ / / /_/ |/ _
\ ___/___ /____/_______/ ___/___ /
<0(--- __/ -h7- ______/ . __/ ---- ______/ --(0>
. /. .
. // /
______\ //______/
Y
Telize — это REST API, встроенный в Go, позволяющий получить IP-адрес посетителя и запрашивать информацию о местоположении с любого IP-адреса. Он выводит данные геолокации IP в кодировке JSON и поддерживает как JSON, так и JSONP.
Операции геолокации выполняются с помощью MaxMind DB Reader for Go, который кэширует базу данных в оперативной памяти. Таким образом, Telize имеет очень минимальные накладные расходы и должен работать очень быстро.
Telize требует следующих библиотек Go:
Telize требует бесплатных баз данных GeoLite2 от MaxMind.
По умолчанию Telize будет искать базы данных GeoLite2 City
и GeoLite2 ASN
в /var/db/GeoIP
.
Соберите и установите с помощью инструмента go
, все зависимости будут автоматически выбраны и скомпилированы:
go build
go install telize
По умолчанию Telize привязывается к локальному хосту, порту 8080.
USAGE:
-host string
Set the server host (default "127.0.0.1")
-port string
Set the server port (default "8080")
-version
Display version
Telize поставляется с юнит-файлом systemd, см.: systemd/telize.service
Скопируйте файл systemd/telize.service
в /etc/systemd/system
и двоичный файл Telize в /usr/local/sbin
.
Чтобы запустить демон при запуске, выполните:
systemctl enable telize
Полную документацию по API и примеры использования можно найти на сайте проекта.
Telize поддерживает обратные вызовы JSONP.
Вызов конечной точки API без каких-либо параметров вернет IP-адрес посетителя:
Добавление IP-адреса в качестве параметра вернет информацию о местоположении для данного адреса:
При вводе неправильного пользовательского ввода сервер возвращает ошибку HTTP 400 (неверный запрос) вместе с сообщением об ошибке в формате JSON.
Telize обрабатывает HTTP-заголовок «X-Forwarded-For», если он присутствует, и возвращает данные для первого IP-адреса списка.
В Telize по умолчанию включен CORS со следующей политикой:
Access-Control-Allow-Origin: *
Начиная с версии 3.0.0, Telize теперь динамически вычисляет смещения часовых поясов (смещение времени UTC) и добавляет данные в полезную нагрузку.
Telize выпускается под лицензией BSD 2-Clause. Подробности смотрите в файле LICENSE
.
Telize разработан Фредериком Камбусом.
Домашняя страница проекта: https://www.telize.com
Последний выпуск архива: https://www.statdns.com/telize/telize-3.1.1.tar.gz.
GitHub: https://github.com/fcambus/telize