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 и да оптимизирате производителността на системата
Архивиране и възстановяване на оформлението на менюто "Старт" в Windows 10

Архивиране и възстановяване на оформлението на менюто "Старт" в Windows 10

В Windows 10 Microsoft съживи менюто "Старт", което беше приветствано от много потребители. В сра...

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

Opera 55: Нова страница с настройки

Екипът зад браузъра Opera пусна нова версия за разработчици на своя продукт. Нова версия за разра...

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

Практически с новия Microsoft Edge, базиран на Chromium

Практически с новия Microsoft Edge, базиран на Chromium

Както може би вече знаете, Microsoft Edge, уеб браузърът по подразбиране на Windows 10, е такъв д...

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