Koduleht » kuidas » Kuidas saada oma süsteemi geograafiline asukoht Bash Scriptist

    Kuidas saada oma süsteemi geograafiline asukoht Bash Scriptist

    Toria / Shutterstock.com

    Kaug-Linuxi süsteemi geograafilise asukoha leiate avatud API-de ja lihtsa bash-skripti abil. Serveri geodeerimine võib aidata teil seda füüsilises maailmas jälgida, tagades, et serverid asuvad piirkondlikes levialades.

    Igal internetis asuval serveril on IP-aadress. See on kas otse serverile määratud või määratud ruuterile, mis saadab sellele serverile liikluse. IP-aadressid annavad meile vihje selle kohta, kus see server maailmas asub. Me võime saada need geolokatsiooniandmed läbi kahe avatud API-liidese, mida pakuvad ipinfo.co ja IP Vigilante ning kasutavad seda, et näha linna, riiki ja riiki, mis on seotud serveri või muu kaugsüsteemiga. See ei anna teile täpset GPS-asukohta; see võimaldab lihtsalt näha IP-aadressi üldist ala.

    Ühendage kaugsüsteemiga

    Linuxi serveris või muudes kaugsüsteemides, mida soovite geolokeerida, käivitatakse järgmised käsud, nii et peate esmalt ühendama serveriga ja pääsema sellele koorele. Näiteks võite ühendada SSH kaudu. Saate oma kohaliku süsteemi käske oma asukoha leidmiseks käivitada, aga te teate, kus sa juba oled!

    Paigalda curl ja jq

    Geolokatsiooni API-le juurdepääsuks on vaja kahte tööriista: curl HTTP taotluste ja  jq töötleme JSON-andmeid, mida me tagasi saame. Avage terminal ja kasutage  apt-get paigaldada need tööriistad Ubuntu või Debian-põhistele süsteemidele. Teistes Linuxi distributsioonides kasutage selle asemel oma Linuxi pakettide installimise tööriista.

    sudo apt-get install curl jq

    Leidke serveri avalik IP-aadress

    Enne geolokatsiooniandmete saamist on meil vaja ka serveri avalikku IP-aadressi. Kasutage curl API-kõne tegemine ipinfo.io-le oma terminaliaknas.

    curl https://ipinfo.io/ip

    Hankige asukohateave API-lt

    Nüüd, kui meil on serveri avalik IP, saame helistada ipvigilante.com API-le, et saada geograafilise asukoha andmed. Asenda eelmise käsu tagastanud aadressiga.

    curl https://ipvigilante.com/

    Vaatame lähemalt, millised andmed me sellest kõnest tagasi saame:

    API tagastab linna, riigi ja kontinendi, kus meie server asub. Samuti tagastab see ligikaudse laius- ja pikkuskraadi koordinaadid, kui soovime selle serveri koostada interaktiivsel kaardil. Kasutame meie skriptis “laiuskraadi”, “pikkuskraadi”, “linna_nime” ja “riigi_nime”. The  jq käsk mõistab, kuidas API andmeid töödelda ja need neli välja välja tõmmata.

    API-kõne automatiseerimiseks mõeldud skripti loomine

    Saame luua skripti, mis haarab geolokatsiooniandmed ja kirjutab selle CSV-vormingus failile. Andmed kirjutatakse nimega fail server_location.txt Euroopa / tmp / kataloog. Avage oma lemmik toimetaja ja looge skript nimega geolocate.sh . Sisestage allpool näidatud skripti sisu ja asenda kindlasti oma IP-aadress:

    #! / bin / sh OUTPUT_FILE = / tmp / server_location.txt # Haara selle serveri avalik IP-aadress PUBLIC_IP = "curl -s https://ipinfo.io/ip" # Helista geolokatsioonirakenduse API-le ja lüüa väljundi curl-https : //ipvigilante.com/$ PUBLIC_IP | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | loe -r LATITUDE; loe -r LONGITUDE loe -r CITY loe -r COUNTRY kajab "$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY" | r - tühista "> OUTPUT_FILE tehtud" 

    Salvesta skript ja mine tagasi terminali. Tehke skript käivitatavaks terminalist, andes sellele failile täitmisloa.

    chmod u + x geolocate.sh

    Nüüd olete valmis seda katsetama. Käivita geolocate.sh skript ja kontrollige väljundfaili sisu:

    ./geolocate.sh cat /tmp/server_location.txt 

    Geolokatsiooniandmete uuendamine kord päevas Cron Jobiga

    Looge croni töö, et meie server oma geolokatsiooni värskendada ja salvestada faili üks kord päevas. Iga päev croni töö värskendab faili, mida kutsutakse server_location.txt Euroopa / tmp / serveri kausta. 24-tunnise croni töö loomine on sama lihtne kui meie skripti panemine /etc/cron.daily kataloog. Me peame kasutama sudo käsku faili kopeerimiseks juurkasutajana, et vältida luba küsimusi. Käivitage kopeerimiseks järgmine käsk geolocate.sh Euroopa /etc/cron.daily kataloog.

    sudo cp geolocate.sh /etc/cron.daily

    Need muudatused on kohesed ja meie skript kestab iga 24 tunni tagant, et värskendada /tmp/server_location.txt faili. Me saame neid andmeid kasutada huvitavate asjade tegemiseks, näiteks meie serverite kaardistamine kaardil ja geolokatsiooni ühendamine liikluslogidega, et näha, kus meie serverid on meie serveri leviala..