Bir Linux Bash Komut Dosyasında Genel IP'nizi Nasıl Alabilirsiniz?
Yayınlanan: 2022-11-12Bilgisayarı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.
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.
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.
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ı
Manjaro'daki komut şudur:
sudo pacman -S kıvrılma
Bunu ifconfig.me
web sayfasında listelenen ilk komutla deneyebiliriz.
ifconfig.me'yi kıvır
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.
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
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ı
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
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
Komut dosyasını çalıştıralım ve ne elde ettiğimizi görelim.
./getex1.sh
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
Bu betiği çalıştıralım.
./getex2.sh
İ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?