kzen.dev
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 kaio
kaio
質問

ルーターのIPアドレスを表示する(だけ)にはどうしたらいいのでしょうか?

ルーターのIPアドレスだけを取得するには、どのようなコマンドを実行すればよいのでしょうか?

このコマンドを実行すると、ルータの IP アドレスだけが表示され、例えば、ルーティングテーブル全体は表示されません(route -n を実行したときのように)。

22 2015-04-05T00:04:25+00:00 7
Eliah Kagan
Eliah Kagan
編集された質問 5日 4月 2015 в 4:17
Ubuntu
command-line
networking
router
ip
解決策・回答
Sergiy Kolodyazhnyy
Sergiy Kolodyazhnyy
5日 4月 2015 в 4:28
2015-04-05T04:28:04+00:00
さらに
ソース
編集
#38377362

ワンライナー

  • nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2`.
  • nm-tool | grep -i gateway | awk '{print $2}`.
  • netstat -nr | awk '$1 == "0.0.0"{print$2}'-nmool | grep -i gateway | awk '{print$2} -f2
  • arp -n | awk '{print $1}' 注意: あなたのマシンがネットワーク上で唯一のものである場合のみ動作します。
  • ip route show | grep -i 'default via'| awk '{print $3 }' を実行します。

と出力されます。私の場合は 192.168.0.1 です。

NOTE:

15.04以降では、nm-toolがないので、nmcli dev show <IFACE> を使ってください。 例えば

$ nmcli dev show wlan7 | grep GATEWAY                                                                                    
IP4.GATEWAY:                            192.168.0.1
IP6.GATEWAY:                            

編集と追加情報

このコマンドを見ればわかるように、nm-tool (これは NetworkManager から情報を取得します) の出力を取り出し、gateway という単語を含む行を見つけ、その情報を echo で表示し (スペースで区切って)、そしてその出力全体のうち 2 番目の項目だけを切り取っています。もし、2つ以上の接続がある場合には、xargs echo | cut -d' ' -f2 の部分を削除して、awk '{print $2}' に置き換える必要があるかもしれないことに注意 してください。あるいは、コメントで Avinash Raj が提案したように nm-tool | grep -oP '(?i)gateway:\s*\KS+' を使用することもできます。見ての通り、ここでは何も特別なことはしておらず、ここでの試練は単に cut, awk, grep といった出力編集ツールの使い方の練習に過ぎないのです。

ゲートウェイの情報を得るもう一つの方法は nmcli dev list (そう、まだネットワークマネージャに頼っているのです) コマンドを使う方法です。nmcliはネットワークマネージャのコマンドライン版です。nmcli dev list | grep -i routers や nmcli dev list | grep -i 'gw =' を実行することができます。繰り返しになりますが、もしあなたが望むなら、目的のIPアドレス以外の他のすべての情報をカットして実行することができます。

元の質問では、デフォルトゲートウェイだけを表示するように指定されていたので、ここではnm-toolの出力に頼っています。NetworkManagerはUbuntuにデフォルトで付属しており、これがUbuntuのネットワーク接続を管理するための標準的な方法です。もしあなたがwicdのような他のものを使ったり、wpa_cliを通して接続したりすると、nm-toolはあなたに答えを与えてくれません。そのような場合は、以下の他の人の回答がより役に立つかもしれません。

netstat -nはカーネルのルーティングテーブルを使うので、route -n` と同じようなものです。 その出力は以下のとおりです。

  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

netstat -nr | awk '$1 == "0.0.0.0"{print$2}'` のように、必要な情報を切り出す方法があります。

もうひとつ、同じくニュートラルなものを。arp -n | awk '{print $1}' ` です。

Sergiy Kolodyazhnyy
Sergiy Kolodyazhnyy
編集した答え 23日 12月 2016 в 8:00
22
0
 Panther
Panther
5日 4月 2015 в 12:18
2015-04-05T00:18:24+00:00
さらに
ソース
編集
#38377360

さまざまな方法で見つけることができます

ip route show default

より良い質問ですが、何を、どのように出力したいのでしょうか?

ip route show | awk '/default/ {print $3}'

tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2}' | uniq

コメントより -(ありがとうございます Avinash Raj 0

tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}'
 Panther
Panther
編集した答え 5日 4月 2015 в 2:50
7
0
 heemayl
heemayl
5日 4月 2015 в 12:28
2015-04-05T00:28:34+00:00
さらに
ソース
編集
#38377361

普段は route -n を使っているので、この sed と route -n を組み合わせた解決策を試してみてください。

route -n | sed -nr 's/(0\.0\.0\.0) +([^ ]+) +\1.*/\2/p' 

以下はそのテストです。

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.0.0     0.0.0.0         255.255.240.0   U     0      0        0 eth0

$ route -n | sed -nr 's/(0\.0\.0\.0) +([^ ]+) +\1.*/\2/p' 
192.168.1.1

もう一つの方法は、grepを使うことです。

$ route -n | tr -s ' ' | grep -Po "(?<=0\.0\.0\.0 )[^ ]+(?= 0\.0\.0\.0)"
192.168.1.1

AvinashRaj が指摘しているように、これは grep だけで可能です (tr を使ってスペースを圧縮する必要はありません)。

route -n | grep -Po "0\.0\.0\.0\s*\K\S+(?=\s*0\.0\.0\.0)"
192.168.1.1
 heemayl
heemayl
編集した答え 5日 4月 2015 в 1:39
6
0
 krt
krt
5日 4月 2015 в 1:56
2015-04-05T13:56:22+00:00
さらに
ソース
編集
#38377363

私はこれをかなり頻繁に使用します。

route -n | awk '{ print $2 }' | grep -Eo '[1-9]{0,3}\.[1-9]{0,3}\.[0-9]{0,3}\.[1-9]{0,3}'
 krt
krt
編集した答え 10日 5月 2015 в 2:57
1
0
 MaZZly
MaZZly
5日 6月 2018 в 4:43
2018-06-05T16:43:06+00:00
さらに
ソース
編集
#38377365

システムのWebブラウザーにアクセスできる場合は、http://whatsmyrouterip.com/に移動でき、コマンドなしでIPを見つけることができるはずです。

それ以外の場合は、単にターミナルを開いて「ipルート| grep default」を実行するだけで十分です。 ネットワークインターフェイスによっては、複数の機能が得られる場合があります。

1
0
Scott Stensland
Scott Stensland
5日 6月 2018 в 4:50
2018-06-05T16:50:39+00:00
さらに
ソース
編集
#38377366
hostname  -I

190.200.200.107 172.21.0.1 172.17.0.1 172.19.0.1 172.18.0.1。

したがって、IPの問題のみを取得します。

hostname -I | cut -d' ' -f1 

190.200.200.107。

0
0
 sys0dm1n
sys0dm1n
5日 11月 2017 в 12:18
2017-11-05T12:18:03+00:00
さらに
ソース
編集
#38377364

私はこれをかなり頻繁に使用し、覚えやすいです:

route | grep default | awk '{print $2}'
0
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Ilya Smirnov
登録済み 2日前
2
Денис Васьков
登録済み 4日前
3
Dima Patrushev
登録済み 6日前
4
sirojidddin otaboyev
登録済み 2週間前
5
Елена Гайдамамакинат
登録済み 2週間前
ID
JA
© kzen.dev :年
ソース
askubuntu.com
ライセンス cc by-sa 3.0 帰属