Понякога трябва бързо да получите информация за геолокацията за IP адрес. В Linux можете да използвате силата на конзолните приложения, за да спестите време и да извлечете тази информация бързо. Нека да видим как може да се направи.
Реклама
За да получите информация за географското местоположение за конкретен IP адрес, трябва да използвате някаква онлайн услуга, която предоставя подходящия API. Добре е да използвате някаква обществена услуга, за да избегнете процедурата за оторизация и управлението на API ключовете. Една такава услуга е FreeGeoIP.net.
Той осигурява публичен HTTP API за търсене на геолокацията на IP адресите. Той използва база данни с IP адреси, които са свързани с градовете, заедно с друга подходяща информация като часова зона, географска ширина и дължина. Това е много полезно.
Услугата може да предоставя резултати от търсенето като JSON или XML. Така че, ако комбинираме curl с някакъв JSON парсер, можем да получим необходимата информация.
как да получа моя Snapchat резултат
Ще използвам любимия си JSON парсер, jq:
Той е много лек и бърз.
За нашия случай заявката трябва да бъде следната:
http://freegeoip.net/json/119.94.116.145
Частта „json“ тук е желаният формат за данни. Освен JSON, това може да бъде XML или CSV.
Нека да изпълним заявката с curl и да видим резултата:
Резултатът е необработен JSON изход, който е труден за четене. За да подобрим външния вид на набора от резултати, нека използваме инструмента jq. Комбинирайте го с къдрене, както следва:
извиване http://freegeoip.net/json/119.94.116.145|jq
Резултатът ще бъде по-лесен за четене:
Използвайки jq, можете да филтрирате изхода и да го накарате да показва само необходимите полета. Следващата команда ще покаже само името на страната, географската ширина и дължина:
къдрене http://freegeoip.net/json/119.94.116.145|jq -r '.наименование на държава, .ширина, .дължина'
Можете да запазите тази команда като следния скрипт на черупката:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.наименование на държава, .ширина, .дължина'
Следващият път, когато трябва да получите информация за геолокация, можете да изпълните скрипта си така:
./geo.sh IP_адрес
Това е.