Dalam artikel seterusnya kita akan melihat bagaimana kita dapat dapatkan lokasi geografi alamat IP awam kami. Kami akan dapat melakukan ini melalui API terbuka dan skrip bash sederhana, semuanya dari terminal Ubuntu. Hari ini semua peranti yang disambungkan ke Internet mempunyai IP, yang menjadi pengecamnya kepada dunia. Alamat ini adalah alamat yang akan kami gunakan untuk mendapatkan lokasi anda.
Semasa kita melayari Internet, setiap pelayan mempunyai alamat IP awam, ini diberikan secara langsung ke pelayan atau melalui penghala yang mengirimkan lalu lintas rangkaian ke pelayan itu. Alamat IP menyediakan cara mudah untuk mengesan lokasi geografi pelayan di dunia. Ini dapat dicapai dengan menggunakan dua API yang disediakan oleh ipinfo.io e ipvigilante.com dengan mana kita akan dapat memperoleh negara pelayan, nama bandar dan koordinat geografinya.
Dalam baris berikut kita akan melihat bagaimana dapatkan lokasi geografi IP dari terminal membantu kami dengan curl dan jq. Tujuan dan penggunaan utama untuk Curl adalah untuk mengautomasikan pemindahan fail atau urutan operasi yang tidak diawasi, sementara jq adalah bahasa fungsional tahap tinggi dengan sokongan untuk melacak dan menguruskan aliran data JSON.
Lokasi geografi IP dari terminal
Pasang Curl dan jq
Untuk mendapatkan lokasi geografis alamat IP, kita harus pasang curl dan alat baris perintah jq untuk memproses data JSON yang diperoleh dari API geolokasi. Untuk memasang kedua-duanya, di terminal (Ctrl + Alt + T) anda perlu menulis arahan:
sudo apt install curl jq
Dapatkan alamat IP awam pelayan
Sebelum mendapatkan lokasi, anda perlu mengetahui alamat IP awam pelayan yang kami sambungkan. Untuk ini, kami akan menggunakan perintah cURL berikut yang akan kami ajukan ipinfo.io dari terminal (Ctrl + Alt + T) seperti gambar di bawah:
curl https://ipinfo.io/ip
Dapatkan data lokasi geografi IP sistem anda berkat API
Setelah melaksanakan arahan sebelumnya, kami akan memperoleh alamat IP awam. Setelah memilikinya, kita akan dapat buat permintaan ke ipvigilante.com untuk mendapatkan data geolokasi. Untuk ini kita akan menggunakan perintah berikut di terminal (Ctrl + Alt + T). Penting untuk mengganti IP awam dengan yang diperoleh dengan arahan sebelumnya.
curl https://ipvigilante.com/la-dirección-IP
Automatikkan panggilan API menggunakan Bash Script
Untuk mengautomatikkan proses komunikasi dengan API yang akan kami jalani buat skrip di dalam fail yang dipanggil ipgeolocator.sh (namanya adalah pilihan). Untuk penciptaannya, kita akan dapat menggunakan mana-mana editor untuk baris arahan yang masing-masing berasa paling selesa.
vim ipgeolocalizador.sh
Apabila editor dibuka, di dalam anda hanya perlu tampal garisan ditunjukkan di bawah:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Setelah ditampal, yang harus anda lakukan hanyalah menyimpan fail dan keluar dari editor. Selepas ini akan diperlukan menjadikan skrip boleh dilaksanakan. Kami akan melakukan ini dengan menulis di terminal yang sama:
chmod +x ipgeolocalizador.sh
Pada ketika ini, kita boleh jalankan skrip seperti berikut untuk mendapatkan lokasi geo IP awam:
./ipgeolocalizador.sh
Skrip di atas memaparkan nama bandar dan negara berserta koordinat garis lintang dan garis bujur. Yang benar adalah bahawa Saya tidak mengetahui margin kesilapan yang boleh berlaku.
Sekiranya anda tidak mahu menyimpan arahan panjang di atas dalam fail, anda juga boleh menjalankan arahan yang sama secara langsung di terminal (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'
Dalam artikel pendek ini, kita telah melihat bagaimana dapatkan geolokasi IP dari Ubuntu menggunakan perintah terminal dan curl dan jq. Anda boleh mendapatkan lebih banyak maklumat mengenai jq atau kira-kira Curl dalam artikel Wikipedia yang sesuai.