Windows Tips & News

Вземете информация за геолокация на IP адрес в Bash в Linux

click fraud protection
ПРЕПОРЪЧВА: Щракнете тук, за да коригирате проблеми с Windows и да оптимизирате производителността на системата

Понякога трябва бързо да получите информацията за геолокация за IP адрес. В Linux можете да използвате силата на конзолните приложения, за да спестите време и да извлечете тази информация бързо. Нека видим как може да се направи.

Реклама


За да получите информация за географското местоположение за конкретен IP адрес, трябва да използвате някаква онлайн услуга, която предоставя подходящия API. Добра идея е да използвате някаква обществена услуга, за да избегнете процедурата за оторизация и управлението на API ключовете. Една такава услуга е FreeGeoIP.net.

Той предоставя публичен HTTP API за търсене в геолокацията на IP адресите. Той използва база данни от IP адреси, които са свързани с градове, заедно с друга подходяща информация като часова зона, географска ширина и дължина. Това е много полезно.

Услугата може да предоставя резултати от търсенето като JSON или XML. Така че, ако комбинираме curl с някакъв JSON анализатор, можем да получим необходимата информация.

Ще използвам любимия си JSON анализатор, jq:

jq-in-reposМного е лек и бърз.

За нашия случай заявката трябва да бъде както следва:

http://freegeoip.net/json/119.94.116.145

Частта "json" тук е желаният формат на данните. Освен JSON, той може да бъде XML или CSV.

Нека стартираме заявката с curl и ще видим изхода:

geo-query-rawРезултатът е суров JSON изход, който е труден за четене. За да подобрим външния вид на набора от резултати, нека използваме инструмента jq. Комбинирайте го с къдрици, както следва:

къдрица http://freegeoip.net/json/119.94.116.145|jq

Резултатът ще бъде по-лесен за четене:форматиран с географска заявка

Използвайки jq, можете да филтрирате изхода и да го накарате да показва само задължителните полета. Следната команда ще покаже само името на държавата, географската ширина и дължина:

къдрица http://freegeoip.net/json/119.94.116.145|jq -r '.име_на_страна,.ширина,.дължина'

гео-заявка-филтриранаМожете да запишете тази команда като следния шел скрипт:

#!/bin/sh. къдрица -s http://freegeoip.net/json/$1|jq -r '.име_на_страна,.ширина,.дължина'

Следващият път, когато трябва да получите информация за геолокация, можете да изпълните своя скрипт по следния начин:

./geo.sh IP_адрес

Това е.

ПРЕПОРЪЧВА: Щракнете тук, за да коригирате проблеми с Windows и да оптимизирате производителността на системата
StatCounter: Microsoft Edge надминава Firefox по популярност

StatCounter: Microsoft Edge надминава Firefox по популярност

ПРЕПОРЪЧВА: Щракнете тук, за да коригирате проблеми с Windows и да оптимизирате производителностт...

Прочетете още

Деактивирайте услугата в архивите на Windows 10

Този уебсайт използва бисквитки, за да подобри вашето изживяване, докато навигирате през уебсайта...

Прочетете още

Linux Mint 18.2 "Sonya" BETA е наличен

Linux Mint 18.2 "Sonya" BETA е наличен

Linux Mint 18.2 е предстоящата версия на популярната дистрибуция. Потребителят може да изтегли пъ...

Прочетете още