In het volgende artikel gaan we kijken hoe we dat kunnen verkrijg de geografische locatie van ons openbare IP-adres We zullen dit kunnen doen via open API's en een eenvoudig bash-script, allemaal vanaf de Ubuntu-terminal. Tegenwoordig hebben alle apparaten die met internet zijn verbonden een IP, dat hun identificatie voor de wereld is geweest. Dit adres gebruiken we om uw locatie te bepalen.
Als we op internet surfen, elke server heeft een openbaar IP-adres, wordt dit rechtstreeks toegewezen aan de server of via een router die netwerkverkeer naar die server stuurt. IP-adressen bieden een gemakkelijke manier om de geografische locatie van de server in de wereld te volgen. Dit kan worden bereikt door gebruik te maken van twee API's van ipinfo.io e ipvigilante.com waarmee we het land van de server, de naam van de stad en de geografische coördinaten kunnen achterhalen.
In de volgende regels zullen we zien hoe pak de geografische locatie van een IP van de terminal die ons helpt met curl en jq Het belangrijkste doel en gebruik voor Krul is het automatiseren van bestandsoverdrachten of onbeheerde reeksen bewerkingen, terwijl jq is een functionele taal van zeer hoog niveau met ondersteuning voor backtracking en beheer van JSON-gegevensstromen.
Geografische locatie van een IP-adres van de terminal
Installeer Curl en jq
Om de geografische locatie van het IP-adres te achterhalen, zullen we dat moeten doen installeer krul en jq opdrachtregelprogramma om de JSON-gegevens te verwerken die zijn verkregen uit de geolocatie-API's. Om beide te installeren, moet je in een terminal (Ctrl + Alt + T) het commando schrijven:
sudo apt install curl jq
Haal het openbare IP-adres van de server op
Voordat u de locatie ophaalt, moet u dit doen ken het openbare IP-adres van de server waarmee we verbinding maken Hiervoor gebruiken we het volgende cURL-commando waarmee we een verzoek zullen doen ipinfo.io van terminal (Ctrl + Alt + T) zoals hieronder getoond:
curl https://ipinfo.io/ip
Verkrijg de gegevens van de geografische locatie van het IP-adres van uw systeem dankzij de API
Na het uitvoeren van de vorige opdracht zullen we het openbare IP-adres verkrijgen. Zodra we het hebben, zullen we het kunnen een verzoek indienen bij ipvigilante.com om geolocatiegegevens te verkrijgen Hiervoor gebruiken we het volgende commando in de terminal (Ctrl + Alt + T). Het is belangrijk om het openbare IP-adres te vervangen door het IP-adres dat is verkregen met het vorige commando.
curl https://ipvigilante.com/la-dirección-IP
Automatiseer de API-aanroep met Bash Script
Om het communicatieproces met de API te automatiseren gaan we maak een script in een bestand met de naam ipgeolocator.sh (de naam is optioneel Voor het maken ervan kunnen we elke editor gebruiken voor de opdrachtregel waarmee iedereen zich het prettigst voelt.
vim ipgeolocalizador.sh
Wanneer de editor wordt geopend, hoeft het alleen maar te gebeuren plak de regel hieronder weergegeven:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Eenmaal geplakt, hoeft u alleen maar het bestand op te slaan en de editor te verlaten. Hierna is het nodig maak het script uitvoerbaar We gaan dit doen door in dezelfde terminal te schrijven:
chmod +x ipgeolocalizador.sh
Op dit punt kunnen we voer het script als volgt uit om de geolocatie van het IP-adres op te halen publiek:
./ipgeolocalizador.sh
Het bovenstaande script geeft de naam van de stad en het land weer samen met de geschatte lengte- en breedtegraadcoördinaten. De waarheid is dat Ik weet niet welke foutmarge het kan hebben.
Als u de bovenstaande lange opdracht niet in een bestand wilt opslaan, u kunt dezelfde opdracht ook rechtstreeks in de terminal uitvoeren (Ctrl + Alt + T):
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
In dit korte artikel hebben we gezien hoe verkrijg de geolocatie van een IP van Ubuntu met behulp van terminal- en curl- en jq-opdrachten U kunt er meer informatie over krijgen jq of ongeveer Krul in hun overeenkomstige Wikipedia-artikelen.