Sådan finder du geografisk placering af Linux-server i Terminal


I denne artikel viser vi dig, hvordan du finder IP-adressens geografiske placering af et eksternt Linux-system ved hjælp af åbne API'er og et simpelt bash-script fra kommandolinjen.

På internettet har hver server en IP-adresse, der vender offentligt, som tildeles direkte til serveren eller via en router, der sender netværkstrafik til den server.

IP-adresser giver en nem måde at spore serverens placering i verden ved hjælp af to nyttige API'er leveret af ipinfo.io og ipvigilante.com for at få byen, staten og landet forbundet med en server.

Installer Curl og jq

For at få serverens geografiske IP-adresse skal vi installere curl-kommandolinjedownloader og jq-kommandolinjeværktøj til at behandle JSON-data fra geolocation-API'erne.

$ 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

Find serverens offentlige IP-adresse

For at få curl-kommandoen til at lave en API-anmodning til ipinfo.io i din terminal som vist.

$ curl https://ipinfo.io/ip

Få IP-placeringsdata fra API'en

Når du har fået serverens offentlige IP-adresse, kan du nu anmode ipvigilante.com's API om at hente geolokationsdata ved hjælp af følgende kommando. Sørg for at udskifte med serverens offentlige IP.

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

Dette er de data, vi får fra ovenstående kommando.

Automatiser API-opkald ved hjælp af Bash Script

Nu for at automatisere API-processen opretter vi et script kaldet getipgeoloc.sh (du kan navngive det, hvad du vil) ved hjælp af en hvilken som helst af dine foretrukne kommandolinjeditorer.

$ vim getipgeoloc.sh

Kopier og indsæt derefter følgende lange kommando i den.

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

Gem filen, og gør scriptet eksekverbart med følgende kommando.

$ chmod +x getipgeoloc.sh

Endelig kør scriptet for at få din Linux IP geografiske placering som vist i følgende skærmbillede.

$ ./getipgeoloc.sh

Ovenstående script viser by- og landsnavnet sammen med de omtrentlige bredde- og længdegradskoordinater.

Alternativt kan du også køre ovenstående kommando uden at gemme den i et script som vist.

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

Du kan også lide at læse disse følgende relaterede artikler:

  1. 4 måder at finde serverens offentlige IP-adresse i Linux Terminal
  2. Find ud af alle Live Hosts IP-adresser, der er tilsluttet på netværket i Linux
  3. Find top 10 IP-adresser, der får adgang til din Apache-webserver

Det er det for nu! I denne korte artikel har vi vist, hvordan du får din Linux IP-geografiske placering fra terminalen ved hjælp af curl- og jq-kommandoerne. Del dine tanker med os eller still spørgsmål ved hjælp af feedbackformularen nedenfor.