Harici ipi bulmak için harici web tabanlı servisleri kullanabilir veya sistem tabanlı yöntemleri kullanabilirsiniz. Dış hizmeti kullanmak daha kolay olanıdır, ancak ifconfig
temel çözümlerin arkasında da değilseniz, sisteminizde de çalışır NAT
. iki yöntem aşağıda detaylı olarak tartışılmıştır.
Harici servisleri kullanarak harici IP'yi bulma
En kolay yol, harici bir servisi komut satırı tarayıcısı veya indirme aracı kullanarak kullanmaktır. Yana wget
Ubuntu varsayılan olarak kullanılabilir, bunu kullanabilir.
IP’nizi bulmak için
$ wget -qO- https://ipecho.net/plain ; echo
Nezaket :
Ayrıca kullanabilirsiniz lynx
(tarayıcı) veya curl
yerine wget
harici ip bulmak için yukarıdaki komuta minör varyasyonlarla.
İp curl
bulmak için kullanma :
$ curl https://ipecho.net/plain
Daha iyi biçimlendirilmiş bir çıktı kullanımı için:
$ curl https://ipecho.net/plain ; echo
Kullanarak daha hızlı (belki en hızlı) yöntemi dig
ile OpenDNS
resolverli olarak:
Buradaki diğer cevapların tümü, uzak bir sunucuya HTTP üzerinden gider. Bazıları çıktının ayrıştırılmasını veya sunucunun düz metin olarak yanıt vermesini sağlamak için Kullanıcı-Ajan başlığına güvenmeyi gerektirir. Ayrıca oldukça sık değişirler (aşağı inerler, adlarını değiştirirler, reklamlar koyarlar, çıktı biçimlerini değiştirebilirler vb.).
- DNS yanıt protokolü standardize edilmiştir (format uyumlu kalacaktır).
- Tarihsel olarak DNS hizmetleri (OpenDNS, Google Genel DNS, ..) çok daha uzun süre hayatta kalma eğilimindedir ve bugün daha sıcak olan whatismyip.com HTTP hizmeti ne olursa olsun daha istikrarlı, ölçeklenebilir ve genellikle daha sonra bakılabilir.
- (mikro-optimizasyonu önemseyen meraklılar için), bu yöntemin doğal olarak daha hızlı olması gerekir (sadece birkaç mikro saniye ile).
Çözücü olarak OpenDNS ile kazı kullanma:
$ dig +short myip.opendns.com @resolver1.opendns.com
111.222.333.444
Kopyalanan yer: https://unix.stackexchange.com/a/81699/14497
Dış hizmetlere güvenmeden dış IP bulma
- Ağ arayüz adınızı biliyorsanız
Terminalinize aşağıdakileri yazın:
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
Yukarıda, yerine <interface_name>
örneğin gerçek bir arayüz adı ile: eth0
, eth1
, pp0
, vb ...
Örnek Kullanım:
$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
- Ağ arayüz adınızı bilmiyorsanız
Terminalinize aşağıdakini yazın (bu, sisteminizdeki her ağ arayüzünün adını ve ip adresini alır):
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
Örnek Kullanım:
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444
Not: Çıktılar gösterge niteliğinde olup gerçek değildir.
Nezaket: https://www.if-not-true-then-false.com/2010/linux-get-ip-adresi /
GÜNCELLEME
LANG=c
ifconfig
Yerel ayarlara bakılmaksızın her zaman ingilizce çıktısı veren temelli kullanımlara eklenmiştir .