Anasayfa » nasıl » Bash'in Komut Dosyasından Sisteminizin Coğrafi Konumunu Nasıl Gidilir?

    Bash'in Komut Dosyasından Sisteminizin Coğrafi Konumunu Nasıl Gidilir?

    Toria / Shutterstock.com

    Açık API'ler ve basit bir bash betiği kullanarak uzak bir Linux sisteminin coğrafi konumunu bulabilirsiniz. Bir sunucunun coğrafi konumu, dünyanın bölgesel noktalarında konumlandırıldığından emin olarak fiziksel dünyada izlemenize yardımcı olabilir.

    İnternetteki her sunucunun halka açık bir IP adresi vardır. Bu, doğrudan sunucuya atanır veya bu sunucuya trafik gönderen bir yönlendiriciye atanır. IP adresleri bize o sunucunun dünyanın neresinde bulunduğuna dair bir ipucu veriyor. Bu konum belirleme verilerini ipinfo.co ve IP Vigilante tarafından sağlanan iki açık API üzerinden alabilir ve bir sunucu veya başka bir uzak sistemle ilişkili şehri, eyaleti ve ülkeyi görmek için kullanabiliriz. Bu size kesin bir GPS konumu sağlamaz; IP adresinin genel alanını görmenizi sağlar.

    Uzak bir sisteme bağlanın

    Aşağıdaki komutları Linux sunucusunda veya coğrafi konumlandırmak istediğiniz diğer uzak sistemlerde çalıştırıyor olacaksınız, bu nedenle önce sunucuya bağlanmalı ve bir kabuğa erişmelisiniz. Örneğin, SSH ile bağlanabilirsiniz. Konumunu bulmak için yerel sisteminizde komutları çalıştırabilirsiniz, ancak muhtemelen nerede olduğunuzu zaten biliyorsunuzdur.!

    Kıvrılma ve jq yükleyin

    Coğrafi konum API'sine erişmek için iki araca ihtiyacımız var: bukle HTTP istekleri yapmak ve  jq geri aldığımız JSON verilerini işlemek için. Bir terminal aç ve kullan  apt-get bu araçları Ubuntu veya Debian tabanlı sistemlere kurmak için. Diğer Linux dağıtımlarında, Linux dağıtımınızın paket yükleme aracını kullanın..

    sudo apt-get yükleme curl jq

    Sunucunun Genel IP Adresini Bulun

    Coğrafi konum verilerini almadan önce sunucunun genel IP adresine de ihtiyacımız var. kullanım bukle terminal pencerenizde ipinfo.io'ya API çağrısı yapmak için.

    kıvırmak https://ipinfo.io/ip

    API’dan Konum Verileri Alın

    Artık sunucunun genel IP'sine sahip olduğumuzdan, coğrafi konum verilerini almak için ipvigilante.com'un API'sini arayabiliriz. değiştirmek önceki komutta geri gelen adresi ile.

    kıvırmak https://ipvigilante.com/

    Bu çağrıdan hangi verilere geri döndüğümüzü daha yakından inceleyelim:

    API, sunucumuzun bulunduğu şehri, ülkeyi ve kıtayı döndürür. Bu sunucuyu etkileşimli bir harita üzerinde çizmek istemeniz durumunda, yaklaşık enlem ve boylam koordinatlarını da döndürür. Senaryomuzda “enlem”, “boylam”, “şehir_adı” ve “ülke_adı” nı kullanacağız.  jq komut, API verilerinin nasıl işlendiğini ve bu dört alanın nasıl çıkarılacağını anlar..

    API Çağrısını Otomatikleştirmek için Bir Komut Dosyası Oluşturma

    Coğrafi konum verilerini alan ve CSV biçiminde bir dosyaya yazan bir komut dosyası oluşturabiliriz. Veri adı verilen bir dosyaya yazılacaktır. server_location.txt içinde / Tmp / dizin. Favori düzenleyicinizi açın ve adlı bir komut dosyası oluşturun. geolocate.sh . Aşağıda gösterilen komut dosyası içeriğini ekleyin ve IP adresini kendinizinkiyle değiştirdiğinizden emin olun:

    #! / bin / sh OUTPUT_FILE = / tmp / server_location.txt # Bu sunucunun genel IP adresini al PUBLIC_IP = "curl -s https://ipinfo.io/ip" # Coğrafi konum API'sini çağırın ve çıktı curl -s https'yi yakalayın : //ipvigilante.com/$ PUBLIC_IP | \ jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | \ -r LATITUDE okunurken; okuma -r LONGITUDE okuma -r ŞEHİR okuma -r ÜLKE echo "$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY" | \ tr --delete \ "> \ $ OUTPUT_FILE bitti 

    Komut dosyasını kaydedin ve terminale geri dönün. Komut dosyasını bu dosya üzerinde çalıştırma izni vererek terminalden yürütülebilir duruma getirin.

    chmod u + x Instagram Hesabındaki Resim ve Videoları geolocate.sh

    Şimdi test etmeye hazırsın. Koş geolocate.sh komut dosyası ve çıktı dosyasının içeriğini kontrol edin:

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

    Coğrafi Konum Verilerini Günde Bir Cron İşiyle Güncelleme

    Sunucumuzun coğrafi konumunu güncellemesi ve günde bir kez kaydetmesi için bir cron işi yaratalım. Günlük cron işi adı verilen bir dosyayı günceller. server_location.txt içinde / Tmp / Sunucunun klasörü. 24 saatlik bir cron işi oluşturmak, senaryomuzu koymak kadar kolay /etc/cron.daily dizin. İzin sorunlarını önlemek için dosyayı kök kullanıcı olarak kopyalamak için sudo komutunu kullanmalıyız. Kopyalamak için aşağıdaki komutu çalıştırın geolocate.sh -e /etc/cron.daily rehber.

    sudo cp geolocate.sh /etc/cron.daily

    Bu değişiklikler hemen gerçekleşir ve komut dosyanızın içeriğini güncellemek için her 24 saatte bir komut dosyası çalışır. /tmp/server_location.txt dosya. Bu verileri, sunucularımızı bir harita üzerine yerleştirmek ve coğrafi konumumuzu trafik günlükleriyle birleştirmek, dünyadaki sunucu sıcak noktalarının nerede olduğunu görmek için ilginç şeyler yapmak için kullanabiliriz..