web-dev-qa-db-ja.com

IPアドレスを取得するためのシェルコマンド?

UbuntuボックスのIPアドレスを見つけるためのbashコマンドはありますか?後でマシンにSSHで接続できるように、IPアドレスを見つける必要があります。

25
opierce

/sbin/ifconfig -a

32
mpbloch

以下を使用できます。

/bin/ip addr
26
Robert Swisher

内部アドレスを使用している場合は、

curl http://myip.dnsomatic.com

uNIXシェルでは良い考えかもしれません。
または、そのURLをブラウザに入力します。


ifconfig -a "結果、
ifconfigが内部アドレスを指定しました-これはおそらく外部からは機能しません。


すべて問題がないように見えても、着信ssh接続を許可しないファイアウォールを設定することができます。
その時点で、マシンのブラウザから対象のポートを試す必要があります。

http://www.canyouseeme.org/

これで接続が確認されます

  • 外部IPアドレス(そのページで表示)
  • NAT、ポート転送
  • ファイアウォール
19
nik

/bin/hostname -i

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

内部アドレスが必要な場合は、ifconfigの後にインターフェースを追加します。

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

NATの背後にいて、パブリックIPが必要な場合は、これを使用します。

wget -q -O-checkip.dyndns.org | sed -e 's /.現在のIPアドレス://' -e 's /<.$ // '

取得元: http://www.go2linux.org/what-is-my-public-ip-address-with-linux

6
JakeRobinson

複数のインターフェースがある場合、どのインターフェースをIPにするかを指定すると便利です。インターフェース「eth0」のIPV4アドレスが必要な場合:

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

インターフェース 'eth0'のIPV6アドレスが必要な場合:

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

ラップトップの2つの一般的なインターフェース、wlan0とeth0の間のIPを検索する場合:

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

ルーターのIPアドレスを確認する必要がある場合は、このコマンドを実行できます。

ディグ+ short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220

DNSサーバーにOpenDNSを使用している場合は、次のように短縮できます。

掘る+ short myip.opendns.com

このコマンドを使用することもできます。

カールhttp://myip.dnsomatic.com
3
Brad Gilbert

これを丸めるだけ ページ

$ curl wtfismyip.com/text

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

これはLinuxとOS Xでも機能する1行で、ローカルではない最初のアドレスを返します。

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

https://stackoverflow.com/a/13322549/99834 にクレジットを送信します

2
sorin

それを行う最も簡単な方法はおそらく

ifconfig eth0

マシンがデフォルトの有線インターフェイス上に単一のIPアドレスを持っていると想定-必要になる場合があります

ifconfig wlan0

wiFiの場合。

1
David North
ip address show scope link

リビングのIPアドレスが表示されます-リンクがあります-インターフェース。しかし、それはbashコマンドではありません。 Bashには、IPとネットワークについての知識はまったくありません。

1
Saabi

私が理解しているのは、動的IPを持つリモートUbuntuマシンを接続したいということです。 dyndns.orgサイトにアクセスして、無料のアカウントを開きます。次に、リモートマシンに動的IPツールをインストールする必要があります。

Sudo aptitude install dyndns-client

だからあなたは経由でリモートマシンをSSHすることができます

ssh [email protected]

したがって、構成後は、リモートマシンのIPアドレスは必要ありません。

1
rainman

これが私が使っているものです:

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

特定のインターフェースの単一のIPだけが必要な場合は、次のことができます。

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

ボックスのパブリックIPアドレス を探している場合は、以下を使用できます。

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

_-4_や_-6_などの Dig(1) オプションを使用して、IPv4またはIPv6アドレスを具体的に検索できます。 Googleは、TXTタイプのレコードで回答を提供します。Digによって提示されると、引用符で囲まれます。 tracerouteなどのユーティリティで変数を後で使用する場合は、 tr(1) のようなものを使用して、引用符を削除する必要があります。

他のオプションには、_whoami.akamai.net_と_myip.opendns.com_が含まれ、これらはAおよびAAAAレコードで応答します(上記のGoogleの例のようにTXTではなく)。したがって、引用符を削除する必要はありません。

  • _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_

上記のすべてのオプションを使用して変数を設定するサンプルスクリプトを次に示します。

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

プライベートIPアドレス、またはボックスに割り当てられたすべてのIPアドレスのセットを探している場合は、 ifconfig (BSDおよびGNU/Linuxの場合)、_ip addr_(GNU/Linuxの場合)、 hostname (GNU/Linuxのオプション_-i_および_-I_)および netstat は、何が起こっているかを確認します。

0
cnst

LinuxでIPアドレスの抽出を利用したことがあります。

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

0
Peter Krumins