Windows Tips & News

Krijg geolocatie-informatie van IP-adres in Bash in Linux

click fraud protection
AANBEVOLEN: Klik hier om Windows-problemen op te lossen en de systeemprestaties te optimaliseren

Soms moet u snel de geolocatie-informatie voor een IP-adres krijgen. In Linux kun je de kracht van console-apps gebruiken om tijd te besparen en deze informatie snel op te halen. Laten we eens kijken hoe het kan.

Advertentie


Om de geografische locatie-informatie over een specifiek IP-adres te verkrijgen, moet u een online service gebruiken die de juiste API biedt. Het is een goed idee om een ​​openbare dienst te gebruiken om de autorisatieprocedure en het API-sleutelbeheer te vermijden. Een van die diensten is: FreeGeoIP.net.

Het biedt een openbare HTTP-API om de geolocatie van IP-adressen te doorzoeken. Het maakt gebruik van een database met IP-adressen die zijn gekoppeld aan steden, samen met andere relevante informatie zoals tijdzone, breedtegraad en lengtegraad. Dit is erg handig.

De service kan zoekresultaten leveren als JSON of XML. Dus als we curl combineren met een JSON-parser, kunnen we de vereiste informatie krijgen.

Ik zal mijn favoriete JSON-parser, jq, gebruiken:

jq-in-repo'sHet is erg licht en snel.

Voor ons geval zou de query als volgt moeten zijn:

http://freegeoip.net/json/119.94.116.145

Het "json"-gedeelte hier is het gewenste gegevensformaat. Naast JSON kan het ook XML of CSV zijn.

Laten we de query uitvoeren met curl en de uitvoer bekijken:

geo-query-onbewerktHet resultaat is onbewerkte JSON-uitvoer die moeilijk te lezen is. Laten we de jq-tool gebruiken om het uiterlijk van de resultatenset te verbeteren. Combineer het als volgt met curl:

Krul http://freegeoip.net/json/119.94.116.145|jq

De uitvoer zal gemakkelijker te lezen zijn:geo-query-geformatteerd

Met jq kunt u de uitvoer filteren en ervoor zorgen dat alleen de vereiste velden worden weergegeven. De volgende opdracht geeft alleen de naam van het land, de breedtegraad en de lengtegraad weer:

Krul http://freegeoip.net/json/119.94.116.145|jq -r '.landnaam,.breedtegraad,.lengtegraad'

geo-query-gefilterdU kunt deze opdracht opslaan als het volgende shellscript:

#!/bin/sh. krul -s http://freegeoip.net/json/$1|jq -r '.landnaam,.breedtegraad,.lengtegraad'

De volgende keer dat u geolocatie-informatie nodig heeft, kunt u uw script als volgt uitvoeren:

./geo.sh IP_adres

Dat is het.

AANBEVOLEN: Klik hier om Windows-problemen op te lossen en de systeemprestaties te optimaliseren
Hoe een proces te beëindigen in Windows 10

Hoe een proces te beëindigen in Windows 10

AANBEVOLEN: Klik hier om Windows-problemen op te lossen en de systeemprestaties te optimaliserenW...

Lees verder

Caps Lock-waarschuwingen voor verteller in- of uitschakelen in Windows 10

Caps Lock-waarschuwingen voor verteller in- of uitschakelen in Windows 10

AANBEVOLEN: Klik hier om Windows-problemen op te lossen en de systeemprestaties te optimaliserenV...

Lees verder

Instellingen voor back-uptaakbeheer in Windows 10

Instellingen voor back-uptaakbeheer in Windows 10

Windows 8 en Windows 10 hebben een nieuwe Taakbeheer-app. Het ziet er totaal anders uit in vergel...

Lees verder