it-swarm.asia

IP Adresi Almak için Shell Komutu?

Ubuntu kutusunun IP adresini bulmak için bir bash komutu var mı? Daha sonra makineye ssh yapabilmem için IP adresini bulmam gerekiyor.

25
opierce

/sbin/ifconfig -a

32
mpbloch

Kullanabilirsiniz:

/bin/ip addr
26
Robert Swisher

Kullanımda dahili bir adresiniz varsa,

curl http://myip.dnsomatic.com

unix mermileri için iyi bir fikir olabilir.
Ya da, sadece bu URL'yi tarayıcınıza işaretleyin.


"ifconfig -a "sonuç,
ifconfig dahili adresinizi verdi - muhtemelen dışarıdan çalışmayacak.


Her şey yolunda görünse bile, gelen ssh bağlantılarına izin vermeyecek bir güvenlik duvarınız olabilir.
Hangi zamanda ilgili bağlantı noktasını makinedeki bir tarayıcıdan denemelisiniz,

http://www.canyouseeme.org/

Bu, üzerinden bağlantıyı teyit edecektir,

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

/bin/hostname -i

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

Dahili adresinize ihtiyacınız varsa ifconfig'den sonra arayüzünüzü ekleyin, ör.

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

Bir NAT'ın arkasındaysanız ve genel IP'ye ihtiyacınız varsa, bunu kullanın:

wget -q -O - checkip.dyndns.org | sed -e 's /. Geçerli IP Adresi: //' -e 's /<. $ //'

alınan: http://www.go2linux.org/what-is-my-public-ip-address-with-linux

6
JakeRobinson

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

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

'eth0' arayüzünün IPV6 adresini istiyorsanız:

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

bir dizüstü bilgisayarın iki ortak arabirimi, 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
4
LoreLLo

Yönlendiricinizin IP adresinin ne olduğunu öğrenmeniz gerekiyorsa, bu komutu çalıştırabilirsiniz.

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

DNS sunucunuz için OpenDNS kullanıyorsanız, aşağıdakileri kısaltabilirsiniz:

Dig + kısa myip.opendns.com

Bu komutu da kullanabilirsiniz.

kıvırmak http://myip.dnsomatic.com
3
Brad Gilbert

Sadece kıvırın sayfa :

$ curl wtfismyip.com/text

3
mansi
LOCAL_IP=`/bin/hostname -I | sed 's/ //g'`
2

Linux ve OS X üzerinde de çalışan bir satır var ve yerel olmayan ilk adresi döndürecek:

ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'

https://stackoverflow.com/a/13322549/99834 adresine kredi gönderin

2
sorin

Bu konuda en basit yol muhtemelen

ifconfig eth0

makinenin varsayılan kablolu arayüzde tek bir IP adresi olduğunu varsayarsak -

ifconfig wlan0

wiFi ise.

1
David North
ip address show scope link

Size yaşam - bağlantı - arayüzlerinin IP adresini gösterecektir. Ama bu bir bash komutu değil. Bash'in IP ve ağ hakkında hiçbir bilgisi yoktur.

1
Saabi

Anladığım kadarıyla, dinamik ipi olan uzak bir ubuntu makinesini bağlamak istiyorsunuz. Dyndns.org sitesine gidin ve ücretsiz bir hesap açın. Ardından uzak makinede dinamik bir ip aracı yüklemeniz gerekir.

Sudo aptitude install dyndns-client

böylece ssh uzak makine ile

ssh [email protected]

Bu yüzden konfigürasyondan sonra asla uzak makinenin ip adresine ihtiyacınız olmayacaktır.

1
rainman

İş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
jlliagre

verilen arayüzün yalnızca tek bir IP'sine ihtiyacınız varsa şunları yapabilirsiniz:

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

Bir kutunun genel IP adresi arıyorsanız, aşağıdakileri kullanabilirsiniz:

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

Bir IPv4 veya IPv6 adresini özellikle aramak için Dig(1)-4 Veya -6 Gibi seçenekleri kullanabilirsiniz; Google, TXT türünde bir kayıt sunacaktır; bu, Dig tarafından sunulduğunda tırnak işaretleri içerecektir; Değişkeni daha sonra traceroute gibi yardımcı programlarla kullanmak istiyorsanız, adı geçen tırnak işaretlerini kaldırmak için tr (1) gibi bir şey kullanmanız gerekir.

Diğer seçenekler arasında, whoami.akamai.net Ve myip.opendns.com, A ve AAAA kayıtları (Google'ın yukarıdaki örneğinde olduğu gibi TXT yerine) ), bu nedenle, tırnak işaretlerinin kaldırılmasını gerektirmez:

  • 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ı aşağıdadır:

#!/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}"

Özel bir IP adresi veya kutuya atanmış tüm IP adresleri kümesi arıyorsanız, ifconfig (BSD ve GNU'da)/Linux), ip addr (GNU/Linux'ta), hostname (seçenekler -i Ve -I Linux) ve netstat neler olduğunu görmek için.

0
cnst

Bir keresinde Linux'ta IP adresinin çıkarılmasını golf ettim:

http://www.catonmat.net/blog/golfing-the-extraction-of-ip-addresses-from-ifconfig/

0
Peter Krumins