Вземете информация за геолокация на IP адрес в Windows 10
В предишната ни статия видяхме как да получите информация за геолокация за IP адрес с помощта на bash, curl и jq в Linux. Нека видим как може да се направи същото в Windows 10. Можем да използваме Bash на Linux или PowerShell за същата цел.
Реклама
Отново ще използваме безплатната услуга "freegeoip.net" като източник на информация за геолокация. Той предоставя публичен HTTP API за търсене в геолокацията на IP адресите. Той използва база данни от IP адреси, които са свързани с градове, заедно с друга подходяща информация като часова зона, географска ширина и дължина. Това е много полезно.
Вземете информация за геолокация на IP адрес в Windows 10 с помощта на Bash в Ubuntu
Ако имате инсталиран Bash на Linux, тогава можете да го използвате в този случай. Трябва да инсталирате конзолния JSON анализатор на jq. Направете го по следния начин.
- Отворете Bash в Ubuntu. Може да се наложи първо да го инсталирате. Вижте следната статия:
Как да активирате Ubuntu Bash в Windows 10Съвет: можете добавете Bash на Ubuntu към контекстното меню на Explorer за да го отворите бързо във всяка желана папка. - Въведете следната команда:
sudo apt-get install jq
Приложението ще бъде инсталирано:
- Сега можете да използвате следната команда:
къдрица http://freegeoip.net/json/119.94.116.145>tmpjson.txt && jq '.' tmpjson.txt && rm tmpjson.txt
Изходът:
Това е същата команда I използван в родната среда на Linux, обаче има бъг. В Windows 10 Bash на Ubuntu има счупена поддръжка за изход на конвейер. Поради този проблем не можете да комбинирате няколко инструмента, за да работите правилно заедно.
Затова използвах временен файл 'tmpjson.txt', който съхранява отговора на сървъра и след това се изтрива.
Ако не сте потребител на Bash в Ubuntu, вместо това можете да използвате PowerShell.
Вземете информация за геолокация на IP адрес в Windows 10 с помощта на PowerShell
Отворете нов екземпляр на PowerShell, както е описано тук: Всички начини за отваряне на PowerShell в Windows 10
Вместо инструмента curl, можете да използвате командлета Invoke-RestMethod. Той е специално създаден за работа с REST (Representational State Transfer) услуги, които обикновено връщат JSON или XML данни.
Синтаксисът е както следва:
Invoke-RestMethod -Метод Get -Uri http://freegeoip.net/json/119.94.116.145
Резултатът от командата ще бъде както следва:

Дори не е необходимо да прилагате допълнително форматиране към командата. Той вече е добре показан в изхода.
Това е.