Harici IP adresimi bulmak için hangi * nix tabanlı komutu kullanabilirim?


Yanıtlar:



8
dig + kısa myip.opendns.com

Bu yalnızca dns sunucunuz olarak OpenDNS kullanıyorsanız çalışır.

Eğer değilseniz, bunlardan biri çalışmalıdır:

dig + kısa myip.opendns.com @ 208.67.222.222
dig + kısa myip.opendns.com @ 208.67.220.220
dig + kısa myip.opendns.com @ 208.67.222.222 @ 208.67.220.220

1
MacOS 10.5, Ubuntu 8.04 veya Ubuntu 9.04 üzerinde çalışmıyor.
Drew Stephens

İlginç olan benim Ubuntu 8.10.
Brad Gilbert

Muhtemelen açık artırma kullanıyorum.
Brad Gilbert

IP bulmak için DNS kullanmak için +1 (http yerine). Ayrıca dns sunucusunu adını kullanarak da belirtebilirsiniz, örn. @resolver1.opendns.com(Okunabilirlik için)
jfs


2
lynx -dump http://www.pcmesh.com/ip-check.cgi | awk '/REMOTE_ADDR/{print $2}'

2

Bunu kullanmak için OpenDNS sunucularını kullanmanız gerekir ... Belirli bir DNS sunucusunu dig ile şu şekilde sorgulayabilirsiniz:

dig + kısa myip.opendns.com @ 208.67.222.222

2

Sayfayı whatismyip gibi bir şeyden almak ve ardından parçaları çıkarmak için kıvırmayı kullanabilirsiniz. Bu örnekte whatismyipaddress.com'u kullandım ... Açıkçası alanlar farklı servislere göre değişecektir.

curl -s http://whatismyipaddress.com/ | grep LOOKUPADDRESS | awk '{ print $4 }'

1

Ben sadece internette bir yere bir traceroute çalıştırın ve yerel ağımızdan hop arayın.

belki daha iyi bir yol var?




0

tüm arabirimleri ve ilişkili IP adreslerini listelemek için ifconfig komutunu kullanabilirsiniz.

yani, internet arayüzünüzün ppp0 olduğunu biliyorsanız,

$ ifconfig ppp0
ppp0 Link encap: Noktadan Noktaya Protokolü
          inet adresi: XXXX.X PtP: YYYY Maskesi: 255.255.255.255
          UP POINTOPOINT ÇALIŞAN NOARP MULTICAST MTU: 1444 Metrik: 1
          RX paketleri: 198986 hataları: 0 düştü: 0 taşması: 0 çerçeve: 0
          TX paketleri: 122929 hataları: 0 düştü: 0 taşması: 0 taşıyıcı: 0
          çarpışmalar: 0 txqueuelen: 3
          RX bayt: 134195571 (127.9 MiB) TX bayt: 17101701 (16.3 MiB)

XXXX IP adresiniz olacak. YYYY bir sonraki şeridin IP adresidir.

daha sonra ifconfig çıktısını grep / awk / sed / cut / perl / ile yalnızca IP'yi çıkarmak için ne olursa olsun sonradan işleyebilirsiniz.

başka bir alternatif, eğer iproute araçlarını yüklediyseniz, ip komutunu kullanmaktır. Örneğin

$ ip adres listesi ppp0
21842: ppp0: mtu 1444 qdisc htb durumu BİLİNMİYOR qlen 3
    bağlantı / ppp
    inet XXXX eş YYYY / 32 kapsam küresel ppp0

bu muhtemelen okunması daha kolay ve ayrıştırılması kesinlikle daha kolaydır:

$ ip adres listesi ppp0 | awk '/ inet / {print $ 2}'
XXXX

- ifconfig içindeki herhangi bir IP'nin gerçek İnternet IP'si ile eşleşmeme şansı vardır (biNAT durumunda) - FreeBSD'de iproute2 paketi yoktur, bu nedenle ip komutu uygulanamaz
SaveTheRbtz

doğru, ben NAT kullanmıyorum böylece bana hiç oluşmadı .... sadece "yanlış" gibi görünüyordu bana kendi sistemi hakkında sorgu bilgi için harici bir hizmet kullanmak için. hatta NAT ile, ben hala NAT (belki bir SNMP sorgusu üzerinden) yapıyor yönlendirici nasıl anlamaya veya ben gerektiğinde kullanılabilir olabilir harici bir hizmet güvenmek nasıl anlamaya tercih ediyorum.
cas

@Craig, Yaklaşımınız iyi. Ancak, dışarıdan bu değere erişemediğiniz sürece harici bir IP değildir. Sen do Bu yanıt için harici bir noktaya güvenmek zorunda. Fikir, sorgu için güvenilir (en azından çevre noktanızdan daha fazla) bir dış nokta bulmaktır. OpenDNS iyi bir nokta.
nik

@nik: sınır yönlendiricinizin IP'sinin harici IP olmadığı tek olası durum, birden çok NAT katmanının arkasında olduğunuzda ... bu durumda doğru çözüm, beyin hasarlı olmayan bir hizmete en kısa sürede geçmek . Ayrıca, IP'nizi bulmak için bir URL getirmeyle ilgili sorun, size yalnızca onu gerçekten getiren ana bilgisayarın IP'sini söylemesidir - bu, üstbilgiler yoluyla şeritlenen bir proxy olabilir.
cas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.