Как да намерите географското местоположение на сървъра на Linux в терминала


В тази статия ще ви покажем как да намерите географското местоположение на IP адреса на отдалечена Linux система с помощта на отворени API и прост bash скрипт от командния ред.

В интернет всеки сървър има публичен IP адрес, който се присвоява директно на сървъра или чрез рутер, който изпраща мрежов трафик към този сървър.

IP адресите предоставят лесен начин за проследяване на местоположението на сървъра в света чрез използване на два полезни API, предоставени от ipinfo.io и ipvigilante.com, за да получите град, щат и държава, свързани със сървър.

Инсталирайте Curl и jq

За да получим географското местоположение на IP адреса на сървъра, трябва да инсталираме програма за изтегляне на команден ред curl и инструмент за команден ред jq за обработка на JSON данните от API за геолокация.

sudo apt install curl jq		#Ubuntu/Debian
sudo yum install curl jq		#CentOS/RHEL
sudo dnf install curl jq		#Fedora 22+
sudo zypper install curl jq		#openSUSE

Намерете публичния IP адрес на сървъра

За да получите публичния IP адрес на сървъра, използвайте следната команда curl, за да направите заявка за API към ipinfo.io във вашия терминал, както е показано.

curl https://ipinfo.io/ip

Вземете данни за IP местоположение от API

След като получите публичния IP адрес на сървъра, вече можете да направите заявка до API на ipvigilante.com за извличане на данните за геолокация, като използвате следната команда. Уверете се, че сте заменили <вашият ip адрес> с публичния IP адрес на сървъра.

curl https://ipvigilante.com/<your ip address>

Това са данните, които получаваме от горната команда.

Автоматизирайте извикването на API с помощта на Bash Script

Сега, за да автоматизираме процеса на приложния програмен интерфейс (API), ще създадем скрипт, наречен getipgeoloc.sh (можете да го наименувате както искате), използвайки някой от любимите ви редактори на командния ред.

vim getipgeoloc.sh

След това копирайте и поставете следната дълга команда в него.

curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'

Запазете файла и направете скрипта изпълним със следната команда.

chmod +x getipgeoloc.sh

И накрая, стартирайте скрипта, за да получите вашето Linux IP географско местоположение, както е показано на следващата екранна снимка.

./getipgeoloc.sh

Горният скрипт показва името на града и държавата заедно с приблизителните координати на широчина и дължина.

Като алтернатива можете също да изпълните горната команда, без да я записвате в скрипт, както е показано.

curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'

Може също да искате да прочетете следните свързани статии:

  1. 4 начина за намиране на публичен IP адрес на сървъра в терминала на Linux
  2. Открийте всички IP адреси на живи хостове, свързани в мрежа в Linux
  3. Намерете топ 10 IP адреса, които имат достъп до вашия уеб сървър Apache

Това е засега! В тази кратка статия показахме как да получите географското си местоположение на Linux IP от терминала с помощта на командите curl и jq. Споделете мислите си с нас или задайте въпроси чрез формата за обратна връзка по-долу.