Мне в повседневной деятельности постоянно приходится смотреть информацию по тем или иным ip адресам. Обычно интересует страна и город, откуда пришёл запрос. Для этого в браузере стоит закладка в быстром доступе на веб сервис. Недавно попался сервис, который упрощает эти повторяющие действия.
С помощью iploka.com и его бесплатного API можно прямо из консоли отправлять запрос на получение подробной информации об ip адресе. Вот пример, как это выглядит:
# curl "api.iploka.com/77.88.8…7.88.8.8"
Ограничение бесплатной версии - 10,000 запросов в месяц, что для единоличного использования более чем достаточно. Для регистрации необходим только email адрес.
Пример простого bash скрипта, с помощью которого можно упростить подобные проверки. В нём сразу используется утилита jq, которая раскрашивает вывод json.
API_KEY=822e086fd27e546ffe323554read -p 'Enter ip address: ' IPcurl -s "https://api.iploka.com/${IP}?api_key=${API_KEY}" | jq
Можно вывести только необходимую информацию с помощью фильтра в jq:
# curl -s "api.iploka.com/77.88.8…7.88.8.8" | jq '.ip, .country_name, .region_name, .connection.isp'
Вывод:
"77.88.8.8""Russia""Volgograd Oblast""YANDEX LLC"
Подобный сервис удобно использовать в мониторинге, где есть контроль за авторизацией. Например, я частенько делаю оповещение в Zabbix на логин по ssh к какому-то серверу. В почту приходит уведомление, включающее в себя информацию об ip адресе, с которого было успешное подключение. Для Mikrotik делаю уведомления об авторизации через Winbox.
В Zabbix можно сделать предобработку данных с помощью JavaScript. А в нём уже сделать проверку ip адреса примерно так:
var apiKey = '{$API_KEY}';var ip = 'value';fetch(`https://api.iploka.com/${ip}?api_key=${apiKey}`).then(response => response.json()).then(data => console.log(data));
За основу взял пример из документации iploka, добавил значение IP адреса в виде value, а api передал через макрос $API_KEY. Данный пример не отлаживал и не уверен, что заработает в таком виде. Я не проверял.
#сервис #zabbix #мониторинг #бесплатно