Hoe de geografische locatie van Linux Server in Terminal te vinden


In dit artikel laten we u zien hoe u de geografische locatie van het IP-adres van een Linux-systeem op afstand kunt vinden met behulp van open API's en een eenvoudig bash-script vanaf de opdrachtregel.

Op internet heeft elke server een openbaar IP-adres, dat rechtstreeks aan de server wordt toegewezen of via een router die netwerkverkeer naar die server stuurt.

IP-adressen bieden een gemakkelijke manier om de locatie van de server in de wereld te volgen door twee handige API's te gebruiken die worden geleverd door ipinfo.io en ipvigilante.com om de stad, de staat en het land met een server te verbinden.

Installeer Curl en jq

Om de geografische locatie van het IP-adres van de server te krijgen, moeten we curl-opdrachtregeldownloader en jq-opdrachtregelprogramma installeren om de JSON-gegevens van de geolocatie-API's te verwerken.

$ 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

Zoek het openbare IP-adres van de server

Om het openbare IP-adres van de server te krijgen, gebruikt u de volgende curl-opdracht om een u200bu200bAPI-verzoek aan ipinfo.io in uw terminal te doen, zoals weergegeven.

$ curl https://ipinfo.io/ip

Haal IP-locatiegegevens op van de API

Zodra u het openbare IP-adres van de server heeft, kunt u nu een verzoek indienen bij de API van ipvigilante.com om de geolocatiegegevens op te halen met behulp van de volgende opdracht. Zorg ervoor dat u vervangt door het openbare IP-adres van de server.

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

Dit zijn de gegevens die we krijgen van het bovenstaande commando.

Automatiseer API-aanroep met Bash-script

Om het API-proces te automatiseren, maken we een script met de naam getipgeoloc.sh (je kunt het alles een naam geven) met behulp van een van je favoriete opdrachtregeleditors.

$ vim getipgeoloc.sh

Kopieer en plak vervolgens de volgende lange opdracht erin.

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

Sla het bestand op en maak het script uitvoerbaar met de volgende opdracht.

$ chmod +x getipgeoloc.sh

Voer ten slotte het script uit om uw Linux IP-geografische locatie op te halen, zoals weergegeven in de volgende schermafbeelding.

$ ./getipgeoloc.sh

Het bovenstaande script toont de naam van de stad en het land samen met de geschatte lengte- en breedtegraadcoördinaten.

Als alternatief kunt u ook de bovenstaande opdracht uitvoeren zonder deze in een script op te slaan, zoals weergegeven.

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

Misschien wilt u ook deze volgende gerelateerde artikelen lezen:

  1. 4 Ways to Find Server Public IP Address in Linux Terminal
  2. Find Out All Live Hosts IP Addresses Connected on Network in Linux
  3. Find Top 10 IP Addresses Accessing Your Apache Web Server

Dat is het voor nu! In dit korte artikel hebben we laten zien hoe u uw Linux IP-geografische locatie van de terminal kunt krijgen met behulp van de curl- en jq-opdrachten. Deel uw mening met ons of stel uw vragen via onderstaand feedbackformulier.