IP Adresi Almak İçin Shell Komutu mu?


Yanıtlar:



25

Kullanabilirsiniz:

/bin/ip addr

3
@opierce mpbloch'un cevabını doğru olarak işaretlediniz, ancak bir FYI olarak, bu cevabı iproute2 takımının bir parçası olduğu için kullanmalısınız. ifconfigşimdi aşamalı.
jwbensley

3
Sadece koşarak daha da kısaltabilirsiniz ip a.
gak

19

Kullanımda dahili bir adresiniz varsa, kontrol

curl http://myip.dnsomatic.com

unix kabukları hakkında iyi bir fikir olabilir.
Veya, sadece bu URL'yi tarayıcınıza yerleştirin.


Eğer "dan farklı bir cevap alırsanız ifconfig -a" sonucu, dışarıdan muhtemelen değil işi - dahili adres verdi.
ifconfig


Hepsi iyi görünse bile, gelen ssh bağlantılarına izin vermeyecek bir güvenlik duvarınız olabilir .
Bu sırada makinedeki bir tarayıcıdan ilgi limanını denemelisiniz.

http://www.canyouseeme.org/

Bu, aracılığıyla bağlantıyı doğrular

  • harici IP adresi (bu sayfada size gösteren)
  • NAT, Bağlantı Noktası İletme
  • Güvenlik duvarları

Doğru, ancak bu durumda, ssh ile iç IP'nin ne olduğunu eşleştiren NAT / Bağlantı Noktası İletme kuralları yoktur.
Kyle Brandt

@Kyle, Eklenebilir ...
nik

3
+1 içincurl http://myip.dnsomatic.com
JatSing

Buna benzer, aynı zamandacurl ifconfig.me
jwbensley 19:03

19

/bin/hostname -i


3
Bu durumda kullanmanızı öneririm hostname --all-ip-addresses. Ana bilgisayarın tüm ağ adreslerini görüntüleyin. Bu seçenek, tüm ağ arayüzlerinde yapılandırılmış tüm adresleri numaralandırır. Geridöngü arabirimi ve IPv6 yerel bağlantı adresleri atlandı. -İ seçeneğinin aksine, bu seçenek ad çözümlemesine bağlı değildir. Çıktının sırası hakkında herhangi bir varsayımda bulunmayın.
lrkwz

5
@ Lrkwz adlı kullanıcının yorumu için daha kısa bir alternatif/bin/hostname -I
hanxue

Thanks @hanxue - bu onun bir cevabı olmalı - en temiz çıktılı en kısa komut - tam da aradığım şey! Benim tecrübeme göre (Ubuntu), /bin/hostname -isadece 127.0.1.1işe yaramaz olanı verir .
Roger Dueck


9
/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'

Dahili adresinize, ifconfig'den sonra arabiriminizi eklemeniz gerekiyorsa, örneğin

 /sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'

1, bu tam olarak ne ben bir sorunu çözmek için gerekli. Tek gömlekler için hurra!
J. Polfer

+1 Kafa olmadan -1: / sbin / ifconfig | grep inet | sed 's / \: / /' | awk 'NR == 1 {3 $ yazdır}'
joeslice

Teşekkürler, Debian'da çalışıyor, ancak OS X'te çalışmıyor, çöpleri geri veriyor. Her ikisinde de çalışan bir çizgi ile gelebilirsek harika olurdu. İşte OS X üzerindeki ifconfig çıktısı: gist.github.com/ssbarnea/5814657
sorin


3

Yönlendiricinizin IP adresinin ne olduğunu bulmanız gerekirse, bu komutu çalıştırabilirsiniz.

dig + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220

Dns sunucunuz için OpenDNS kullanıyorsanız, onu kısaltabilirsiniz:

kazı + kısa myip.opendns.com

Bu komutu da kullanabilirsiniz.

kıvırmak http://myip.dnsomatic.com

3

Birden fazla arayüzünüz varsa, hangisini IP istediğinizi belirlemek için yararlı olabilir. 'eth0' arabiriminin IPV4 adresini istiyorsanız:

ip addr show dev eth0 | grep "inet " | awk '{ print $2 }' 

'eth0' arabiriminin IPV6 adresini istiyorsanız:

ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }' 

Bir dizüstü bilgisayarın iki ortak arayüzü, wlan0 ve eth0 arasında bir IP aramak istiyorsanız:

CURRENT_IP=''
for INTERFACE in wlan0 eth0; do
    if [ -z $CURRENT_IP ]; then
        CURRENT_IP=$(ip addr show dev $INTERFACE | grep "inet " | awk '{ print $2 }')
    fi
done

3

Sadece bu sayfayı kıvırın :

$ curl wtfismyip.com/text


Ve bu, bu yıllarda daha önce bahsedilen benzer hizmetler için tam olarak nasıl üstündür?
Esa Jokinen



1

Bunu yapmanın en basit yolu muhtemelen

ifconfig eth0

varsayılan kablolu arayüzde makinenin tek bir IP adresine sahip olduğunu varsayarsak

ifconfig wlan0

eğer WiFi’de ise.


1
ip address show scope link

Size yaşayanların IP adresini gösterecek - bağlantı arayüzleri var. Fakat bu bir bash komutu değildir. Bash'in IP ve ağ hakkında hiçbir bilgisi yok.


1

Anladığım kadarıyla dinamik ip olan uzak bir ubuntu makinesi bağlamak istiyorsun. Dyndns.org sitesine gidin ve ücretsiz bir hesap açın. Sonra uzak makinede dinamik bir ip aracı yüklemeniz gerekir.

sudo aptitude install dyndns-client

Böylece uzak makineyi ssh yapabilirsiniz.

ssh username@yourdynamicnamealias.dyndns.org

Bu yüzden konfigürasyondan sonra uzaktaki makinenin ip adresine asla ihtiyacınız olmayacak.


Bu, dinamik IP'lerle başa çıkmak için tercih ettiğim yöntemdir. dyndns.org fantastik ve ücretsiz bir hizmettir.
John Barrett

1

İşte ne kullanıyorum:

LC_ALL=C /sbin/ifconfig | awk '
    /inet addr/ {
        gsub("addr:","");
        if(($2!="127.0.0.1") && ($2!="0.0.0.0") && ($2!=""))
            { print $2 };
    }'

1

Verilen bir arabirimin sadece bir IP'sine ihtiyacınız varsa, şunları yapabilirsiniz:

ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2);  print $2 }' 


0

Kutunun ortak bir IP adresini arıyorsanız , aşağıdakileri kullanabilirsiniz:

  • dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \"

Özel olarak bir IPv4 veya IPv6 adresi aramak için veya dig(1)gibi seçenekleri kullanabilirsiniz ; Google bir kayıtta bir cevap verecektir tarafından sunulduğunda etrafını tırnaklar olacak türü, ; Daha sonra değişkeni bu gibi yardımcı programlarla kullanmak istiyorsanız, bahsedilen alıntıları kaldırmak için tr (1) gibi bir şey kullanmanız gerekir .-4-6TXTdigtraceroute

Diğer seçenekler arasında whoami.akamai.netve myip.opendns.comhangi cevapları Ave AAAAkayıtları ( TXTGoogle'dan yukarıdaki örnekte olduğu gibi) içerir; bu nedenle, alıntıların kaldırılmasını gerektirmezler:

  • dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short

  • dig -4 @resolver1.opendns.com -t any myip.opendns.com +short

  • dig -6 @resolver1.opendns.com -t any myip.opendns.com +short

Değişkenleri ayarlamak için yukarıdaki tüm seçenekleri kullanan örnek bir komut dosyası:

#!/bin/sh
IPANY="$(dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv4="$(dig -4 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv6="$(dig -6 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
AKAMv4="$(dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)"
CSCOv4="$(dig -4 @resolver1.opendns.com -t a myip.opendns.com +short)"
CSCOv6="$(dig -6 @resolver1.opendns.com -t aaaa myip.opendns.com +short)"
printf '$GOOG:\t%s\t%s\t%s\n' "${IPANY}" "${GOOGv4}" "${GOOGv6}"
printf '$AKAM:\t%s\n$CSCO:\t%s\t%s\n' "${AKAMv4}" "${CSCOv4}" "${CSCOv6}"

Eğer özel bir IP adresi arıyorsanız, veya kutuya atanan tüm IP adreslerinin kümesi için, size bazı kombinasyonu kullanabilirsiniz ifconfig, (BSD ve GNU / Linux üzerinde) ip addr(GNU / Linux üzerinde), hostname(seçenekleri -ive -Iüzerinde GNU / Linux) ve netstatneler olup bittiğini görmek için.

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.