I neste artikkel skal vi se på hvordan vi kan få den geografiske plasseringen av vår offentlige IP-adresse. Vi vil kunne gjøre dette gjennom åpne APIer og et enkelt bash-skript, alt fra Ubuntu-terminalen. I dag har alle enheter som er koblet til Internett en IP, som har vært deres identifikator for verden. Denne adressen er den vi vil bruke til å skaffe deg posisjon.
Når vi surfer på Internett, hver server har en offentlig IP-adresse, dette tildeles direkte til serveren eller via en ruter som sender nettverkstrafikk til den serveren. IP-adresser gir en enkel måte å spore den geografiske plasseringen til serveren i verden. Dette kan oppnås ved å bruke to API-er levert av ipinfo.io e ipvigilante.com som vi vil kunne få serverens land med, navnet på byen og dens geografiske koordinater.
I de følgende linjene vil vi se hvordan Hent geografisk plassering av en IP fra terminalen som hjelper oss med krøll og jq. Hovedformålet og bruken til cURL er å automatisere filoverføringer eller uten tilsyn operasjonssekvenser, mens jq er et veldig høyt nivå funksjonelt språk med støtte for backtracking og styring av JSON datastrømmer.
Geografisk plassering av en IP fra terminalen
Installer Curl og jq
For å få den geografiske plasseringen av IP-adressen, må vi installer krøll og jq kommandolinjeverktøy å behandle JSON-data hentet fra geolokaliserings-API-ene. For å installere begge deler, i en terminal (Ctrl + Alt + T), må du skrive kommandoen:
sudo apt install curl jq
Få den offentlige IP-adressen til serveren
Før du får lokasjonen, må du kjenne den offentlige IP-adressen til serveren vi kobler til. For dette vil vi bruke følgende cURL-kommando som vi vil be om ipinfo.io fra terminal (Ctrl + Alt + T) som vist nedenfor:
curl https://ipinfo.io/ip
Få data om den geografiske plasseringen til IP-en til systemet ditt takket være API
Etter å ha utført den forrige kommandoen vil vi få den offentlige IP-adressen. Når vi har det, vil vi kunne gjøre en forespørsel til ipvigilante.com om å få tak i geolokaliseringsdata. For dette vil vi bruke følgende kommando i terminalen (Ctrl + Alt + T). Det er viktig å erstatte den offentlige IP-adressen med den som ble oppnådd med den forrige kommandoen.
curl https://ipvigilante.com/la-dirección-IP
Automatiser API-samtalen ved hjelp av Bash Script
For å automatisere kommunikasjonsprosessen med API-en vi skal lage et skript i en fil som heter ipgeolocator.sh (navnet er valgfritt). For opprettelsen vil vi kunne bruke hvilken som helst redaktør for kommandolinjen som hver og en føler seg mest komfortabel med.
vim ipgeolocalizador.sh
Når redaktøren åpner, må du bare inne lim inn linjen Vist under:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Når du er limt inn, er alt du trenger å gjøre å lagre filen og avslutte redigeringsprogrammet. Etter dette vil det være nødvendig gjør skriptet kjørbart. Vi skal gjøre dette ved å skrive i samme terminal:
chmod +x ipgeolocalizador.sh
På dette punktet kan vi kjør skriptet som følger for å få geografisk plassering av IP-en offentlig:
./ipgeolocalizador.sh
Ovenstående skript viser by- og landnavnet sammen med omtrentlige bredde- og lengdegradskoordinater. Sannheten er at Jeg vet ikke feilmarginen den kan ha.
Hvis du ikke vil lagre den ovennevnte lange kommandoen i en fil, du kan også kjøre den samme kommandoen direkte i terminalen (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'
I denne korte artikkelen har vi sett hvordan få geolokalisering av en IP fra Ubuntu ved hjelp av terminal- og curl- og jq-kommandoer. Du kan få mer informasjon om jq eller om cURL i deres tilsvarende Wikipedia-artikler.