Bir Linux Bash Komut Dosyasında Genel IP'nizi Nasıl Alabilirsiniz?

Yayınlanan: 2022-11-12
Linux komut istemini gösteren mavi arka planda dizüstü bilgisayar.
fatmawati achmad zaenuri/Shutterstock.com
Harici IP'nizi bir web sitesinden "curl -s ifconfig.me" gibi curl komutuyla alabilirsiniz. Ancak, web siteleri değişebilir. Daha güvenilir bir yanıt için, IP'nizi bir DNS sunucusundan almak için "dig @resolver1.opendns.com myip.opendns.com +short" gibi dig komutunu kullanın.

Bilgisayarınıza uzaktan bağlanmak istiyorsanız harici IP adresinize ihtiyacınız olacak. Manuel olarak bulmak kolaydır, ancak bir Linux komut dosyasından nasıl bulacağınız aşağıda açıklanmıştır.

Dahili ve Harici IP Adresleri

İnternet Protokol adresleri, bir ağdaki cihazları tanımlamak için kullanılır. Ağ üzerinde tek bir cihaza atanan benzersiz bir etikettir. Başka bir cihaz o cihaza veri göndermek isterse, IP adresini kullanarak bunu yapabilir.

IP Adresleri Nasıl Çalışır?
İLGİLİ IP Adresleri Nasıl Çalışır?

Geniş bant modeminizde, ağdaki ağ trafiğini cihazdan cihaza yönlendiren yerleşik bir ağ yönlendiricisi bulunur. Ayrıca, ağa katıldıklarında cihazlara IP adresleri tahsis eden yerel otoritedir. Ayrıca ağ adları ve IP adresleri tablosunu da tutar. Bu, ağınızdaki bilgisayarlara anlamlı adlar vermenizi sağlar, çünkü —insanlar için— adlarla çalışmak sayı listelerinden daha kolaydır.

İnternetteki cihazların da bir IP adresi vardır. Bazılarının web siteleri gibi isimleri de vardır. Alan Adı Hizmeti sağlayıcıları, web sitesi alan adlarını arar ve bunları otomatik olarak IP adresleri ile değiştirir.

Geniş bant modeminize, İnternet Servis Sağlayıcınız (ISS) tarafından kendi internete bakan veya harici IP adresi verilir. Evinizde internete bağlı olan cihaz sayısı ne olursa olsun, bunların toplam trafiği tek bir IP adresi üzerinden gider.

Şehir dışındaysanız ve evinizdeki bilgisayarlardan birinde çalıştırdığınız bir hizmete bağlanmak istiyorsanız, bunun için harici IP adresinizi kullanmanız gerekir. Yönlendiricinizin, elbette, bağlantı isteğinizi evinizdeki uygun cihaza yönlendirmek için ayarlanması gerekecektir.

Statik bir IP adresi için ISS'nize her ay biraz fazla ödeme yapmadığınız sürece, harici IP adresiniz zaman zaman değişebilir. Geniş bant modeminizi yeniden başlatmak, farklı bir harici IP adresi almanıza neden olabilir. Bu nedenle, harici IP adresinizi bilmeniz gerekiyorsa, sadece bir kez kontrol edip saklayamazsınız. Periyodik olarak ne olduğunu belirlemeniz gerekecek.

Harici IP Adresinizi Bulma

Harici IP adresinizi keşfetmek, ağınızın dışında olan bir şeyle konuşmak anlamına gelir. Başka bir deyişle, internette bize istediğimiz bilgiyi verebilecek bir şeye erişmek. Boşluğa bakmalı ve bize neyin baktığını görmeliyiz. Ve sonra harici adresimizi isteyin.

Bunu yapmamızın iki yolu var. Bir yol web sitelerini içerir. Size harici IP adresinizin ne olduğunu gösterecek birçok web sitesi ve bir sürü başka bilgi var. Bunlara tarayıcınızdan erişebilir veya HTTPS istekleri yapabilen curl gibi bir komut satırı aracı kullanabilirsiniz.

Diğer yol ise dig gibi özel bir komut kullanmaktır. dig komutu, bilgi almak için DNS sunucularını sorgular.

Tarayıcı Kullanmak

Elbette, bir tarayıcı kullanmak, harici IP adresinizi almanın komut dosyası dostu bir yolu değildir. Ancak bu hizmeti sunan bir web sitesine bakmak bize faydalı bilgiler verebilir. Eskiden ip4.me'yi tavsiye ederdik ama site HTTPS'ye güncellenmedi. Hala eski, güvenli olmayan HTTP'yi kullanıyor. Site hala çalışıyor, ancak şimdi daha iyi alternatifler var.

ifconfig.me sitesi iyi bir bilgi seti sağlar.

Harici bir IP adresi gösteren ifconfig.me web sitesi

Bu, harici IP'mizi 178.238.11.140 olarak bildiriyor. Web sayfasını aşağı kaydırdığınızda, siteden bilgi almak için kullanabileceğiniz komutların bir listesini bulacaksınız.

Bir dizi cURL komutunu gösteren ifconfig.me web sitesi

Verdikleri örnekler, siteyi sorgulamak için curl kullanır. Şimdi curl kullanımına bir göz atalım.

curl kullanma

Test makinelerimizde Fedora 37 zaten curl yüklüydü. Ubuntu ve Manjaro bilgisayarlarımıza kurmamız gerekiyordu.

Ubuntu tipine kurmak için:

 sudo apt yükleme kıvrılması 

Ubuntu'da curl kurulumu

Manjaro'daki komut şudur:

 sudo pacman -S kıvrılma 

Manjaro'ya curl yükleme

Bunu ifconfig.me web sayfasında listelenen ilk komutla deneyebiliriz.

 ifconfig.me'yi kıvır 

ifconfig.me web sitesinin varsayılan eylemini kullanarak harici bir IP adresi alma

Harici IP adresimiz alınır ve terminal penceresinde görüntülenir. Çıktı çıplak kemiklerdir. Dizeden sonra basılan yeni satır karakteri bile yok. Komut istemi, IP adresinin tam karşısına yerleştirilmiştir.

Linux Komut Satırından Dosya İndirmek için curl Nasıl Kullanılır
İLGİLİ Linux Komut Satırından Dosya İndirmek için curl Nasıl Kullanılır

Bu komut, IP adresinin döndürülmesi web sitesinin varsayılan eylemi olduğu için çalışır. Varsayılan eylem değişirse, bize döndürülen farklı bir sonuç alabiliriz. Bunu sağlamak için, URL'ye "ip" tanımlayıcısını ekleyerek IP adresimizi istediğimizi belirtebiliriz.

 curl ifconfig.me/ip 

ip belirteci ile ifconfig.me web sitesini kullanarak harici bir IP adresi alma

Bu, daha önce olduğu gibi IP adresini döndürür.

Bu, IP adresinizin kaynağı olarak bir web sitesi kullanma sorununu gösterir. Web siteleri kapanabilir veya çalışma şeklini veya döndürülen bilgilerin biçimini değiştirebilir. Bu değişiklikler, bu sitelere bağlı komut dosyalarının başarısız olmasına veya tahmin edilemez şekilde davranmasına neden olacaktır.

DNS sunucusu gibi saygın ve güvenilir bir kaynak kullanmak, harici IP'nizi almanın daha sağlam bir yoludur. Bir DNS sunucusunu sorgulamak için dig komutunu kullanmamız gerekir.

İLGİLİ: DNS Nedir ve Başka Bir DNS Sunucusu Kullanmalı mıyım?

dig Komutunu kullanma

Bu sefer dig , Fedora ve Ubuntu'ya kuruldu ve biz sadece Manjaro'ya kurmak zorunda kaldık.

Komut her zamanki pacman komutudur, bu yüzden burada sürpriz yok, ancak paket adı beklediğiniz gibi değil.

 sudo pacman -S bağlama araçları 

Manjaro'ya kazı yükleme

dig harici IP adresimizi keşfetmek için kullanmak için, onu bir DNS sunucusuna yönlendirmemiz gerekir. Cisco tarafından sağlanan OpenDNS sunucusunu kullanıyoruz.

Kullanmak istediğimiz DNS sunucusunun adını “@” işaretinden önce belirtmemiz gerekiyor. Ayrıca almak istediğimiz kayıt türünü de adlandırmamız gerekiyor. Bu durumda "myip" olur. +short seçeneği, ayrıntılı bir yanıt değil, kısa bir yanıt almamızı sağlar.

 dig @resolver1.opendns.com myip.opendns.com +short 

Dig komutuyla bir DNS sunucusundan harici bir IP adresi alma

Bu sefer IP adresimizin arkasından bir satırsonu karakteri basılmıştır. Göreceğimiz gibi, bu IP adresi dizesinden sonra yazdırılır, dizenin kendisinin ayrılmaz bir parçası değildir.

İLGİLİ: Linux'ta dig Komutu Nasıl Kullanılır

Bunları Bir Komut Dosyasında Kullanmak

Bir komut dosyasının içinden harici IP adresinizi bilmek isteyebileceğiniz birçok neden vardır. Belki de harici IP adresinizin değişip değişmediğini izleyen bir komut dosyanız var ve bu olduğunda size haber veriyor. Ya da belki bir sunucu, adresi değiştiğinde istemcilerini bilgilendirir. Nedeniniz ne olursa olsun, komut satırında kullandığımız komutları bir betik içinde oldukça kolay bir şekilde uygulayabiliriz.

Harici IP adresimizi almak ve bir değişkene atamak için, komutu yalnızca bir komut ikamesi, $(...) içine sarmamız ve aşağıdaki gibi bir değişkene atamamız gerekir:

 değişken=$(...)

Parantez içindeki komut yürütülür ve ifade için dönüş değeri değiştirilir. Bu örnekte, komut "değişken=dönüş değeri" olarak basitleştirilmiştir.

İLGİLİ: Bash'de Değişkenlerle Nasıl Çalışılır

İşte bir komut dosyasında. -s (sessiz) seçeneğini, veri alma işleminin ilerlemesini bildirmesini önlemek için curl komutuna ekledik.

 #!/bin/bash

extaddr=$(curl -s ifconfig.me)

echo "Harici IP adresi $extaddr (cURL'den)"

Bu betiği bir düzenleyiciye kopyalayın ve “getex1.sh” olarak kaydedin ve chmod komutuyla çalıştırılabilir hale getirin.

 chmod +x getex1.sh 

chmod ile çalıştırılabilir bir komut dosyası yapma

Komut dosyasını çalıştıralım ve ne elde ettiğimizi görelim.

 ./getex1.sh 

getex1.sh betiğini çalıştırma

Aynısını bir web sitesi yerine bir DNS sunucusu kullanmanın daha sağlam seçeneğiyle yapmak için tek yapmamız gereken curl komutunu dig ile değiştirmek.

 #!/bin/bash

extaddr=$(dig @resolver1.opendns.com myip.opendns.com +short)

echo "Harici IP adresi $extaddr (dijiden)"

Bunu “getex2.sh” betiği olarak kaydedin ve chmod ile çalıştırılabilir hale getirin.

 chmod +x getex2.sh 

chmod ile çalıştırılabilir bir komut dosyası yapma

Bu betiği çalıştıralım.

 ./getex2.sh 

getex2.sh betiğini çalıştırma

İki betiğin çıktısından, dig komutunun komut satırında yeni bir satır karakteri yazdırmasına rağmen, komut dosyasında extaddr değişkenine yeni satır eklenmediğini görebiliriz.

Güvenilirlik İçin Gidin

"Resmi olmayan" bir web sitesi kullanmaktansa, saygın ve öngörülebilir bir çıktı biçimine sahip tanınmış bir hizmet kullanmak her zaman daha güvenlidir. İnternetteki diğer her şey gibi, bilgilerinizi kimden aldığınıza iyi bakın.'

İLGİLİ: Linux Komut Dosyalarının Sanal Makinelerde Çalıştıklarını Algılamasına Nasıl İzin Verilir?