Hogyan kaphatod meg a rendszer földrajzi helyét egy Bash Script-ből
A távoli Linux-rendszer földrajzi elhelyezkedését nyílt API-k és egyszerű bash-szkript segítségével találhatja meg. A kiszolgáló geolokálása segíthet a fizikai világban való nyomon követésében, biztosítva, hogy a szerverek a helyi hotspotokban találhatók.
Minden internetkiszolgáló nyilvános nézőpontú IP-címmel rendelkezik. Ez vagy közvetlenül a kiszolgálóhoz van hozzárendelve, vagy hozzárendelve egy útválasztóhoz, amely forgalmat küld a kiszolgálónak. Az IP-címek egy nyomot adnak arról, hogy hol található a szerver a világon. Ezt a földrajzi elhelyezkedési adatot két nyílt API-n keresztül kaphatjuk meg, amelyeket az ipinfo.co és az IP Vigilante biztosít, és használjuk, hogy megnézzük a várost, államot és országot, amely egy szerverhez vagy más távoli rendszerhez kapcsolódik. Ez nem ad pontos GPS-helyet; csak az IP-cím általános területét láthatja.
Csatlakozás egy távoli rendszerhez
A következő parancsokat futtathatja a Linux-kiszolgálón vagy más távoli rendszerekben, amelyekkel geolocate-t szeretne létrehozni, így először csatlakoznia kell a kiszolgálóhoz és hozzáférnie kell egy shellhez. Például SSH-n keresztül csatlakozhat. Futtathatja a helyi rendszeren lévő parancsokat, hogy megtalálja a helyét, de valószínűleg már tudja, hogy hol van!
Telepítse a curl-t és a jq-t
Két eszközre van szükség a földrajzi elhelyezkedés API eléréséhez: curl
HTTP kérések és JQ
a JSON-adatok feldolgozásához. Nyissa meg a terminált és használja apt-get
ezeket az eszközöket az Ubuntu vagy a Debian-alapú rendszerekre telepíteni. Más Linux disztribúcióknál inkább használja a Linux disztribúció csomag telepítési eszközeit.
sudo apt-get install curl jq
Keresse meg a kiszolgáló nyilvános IP-címét
Szükségünk van a kiszolgáló nyilvános IP-címére, mielőtt megkapnánk a földrajzi helymeghatározási adatokat. Használat curl
API-hívást kezdeményezni az ipinfo.io-hoz a terminálablakban.
curl https://ipinfo.io/ip
Helyadatok beszerzése az API-ból
Most, hogy rendelkezünk a szerver nyilvános IP-vel, hívást kezdeményezhetünk az ipvigilante.com API-jára, hogy megkapjuk a földrajzi helyadatok adatait. Cserélje az előző parancsban visszaadott címmel.
curl https://ipvigilante.com/
Nézzük meg közelebbről, hogy milyen adatokat kapunk vissza a hívásból:
Az API visszaadja azt a várost, országot és kontinenset, amelyben a szerverünk tartózkodik. Visszatér a hozzávetőleges szélességi és hosszúsági koordinátákhoz is, amennyiben ezt a kiszolgálót interaktív térképre szeretnénk rajzolni. Szkriptünkben „szélességi”, „hosszúsági”, „city_name” és „country_name” lesz. A JQ
A parancs megérti, hogyan kell feldolgozni az API-adatokat, és kivonni ezeket a négy mezőt.
Script létrehozása az API hívás automatizálásához
Létrehozhatunk egy olyan forgatókönyvet, amely megragadja a geolokációs adatokat, és CSV formátumú fájlba írja. Az adatokat egy hívott fájlba írjuk server_location.txt
ban,-ben / Tmp /
Könyvtár. Nyissa meg kedvenc szerkesztőjét, és hozzon létre egy nevű parancsfájlt geolocate.sh
. Helyezze be az alább látható szkript tartalmát, és győződjön meg róla, hogy az IP-címet sajátra cseréli:
#! / bin / sh OUTPUT_FILE = / tmp / server_location.txt # Fogd meg a szerver nyilvános IP-címét PUBLIC_IP = "curl -s https://ipinfo.io/ip" # Hívd a geolokációs API-t, és rögzítsd a https : //ipvigilante.com/$ PUBLIC_IP | q '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | olvassa el -r LATITUDE; olvasd el -r LONGITUDE olvasni -r CITY olvasni -r COUNTRY echo "$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY" | r --delete "> OUTPUT_FILE kész
Mentse el a parancsfájlt, és térjen vissza a terminálhoz. Végezze el a parancsfájl futtatását a terminálról, a végrehajtási engedély megadásával.
chmod u + x geolocate.sh
Most már készen áll a tesztelésre. Futtassa a geolocate.sh
parancsfájl és ellenőrizze a kimeneti fájl tartalmát:
./geolocate.sh cat /tmp/server_location.txt
A Geolocation adatok naponta frissítése Cron Job segítségével
Hozzunk létre egy cron munkát, hogy szerverünk frissítse a földrajzi elhelyezkedését, és naponta egyszer mentse el egy fájlba. A napi cron job frissíti a hívott fájlt server_location.txt
ban,-ben / Tmp /
a szerver mappáját. A 24 órás cron munka létrehozása olyan egyszerű, mint a forgatókönyv beillesztése /etc/cron.daily
Könyvtár. A jogosultsági problémák elkerülése végett a sudo paranccsal kell másolni a fájlt root felhasználóként. Futtassa a következő parancsot a másoláshoz geolocate.sh
hoz /etc/cron.daily
Könyvtár.
sudo cp geolocate.sh /etc/cron.daily
Ezek a változtatások azonnal megtörténnek, és a parancsfájl 24 óránként fog futni, hogy frissítse a tartalom tartalmát /tmp/server_location.txt
fájlba. Ezeket az adatokat érdekes dolgok elvégzésére használhatjuk, mint például a kiszolgálók térképen történő ábrázolása, valamint a földrajzi elhelyezkedés kombinálása a forgalmi naplókkal, hogy megnézhessük, hol vannak a világon a kiszolgáló hotspotjaink..