Как показать (просто) IP-адрес моего маршрутизатора?

Установить XRDP

sudo apt-get install xrdp

Затем вы можете использовать RDP в своей машине Ubuntu.

1
задан 5 April 2015 в 07:17

4 ответа

Вы можете найти это много способов

ip route show default

Лучший вопрос, что и как вы хотите сформировать вывод?

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

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

Из комментариев - (спасибо вы Авинаш Радж 0

tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}'
8
ответ дан 23 May 2018 в 21:44
  • 1
    вам не нужно o для uniq, только tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}' будет 5in. – Avinash Raj 5 April 2015 в 17:47
  • 2
    так много вариантов. В моей системе он печатает дважды без uniq. Также работает ваше решение. – Panther 5 April 2015 в 17:49
  • 3
    Примечание. [F1] поддерживает -m на некоторые версии Ubuntu , но не на других . – Eliah Kagan 5 April 2015 в 20:24
  • 4
    Кстати, @ bodhi.zazen, есть вариация в вашем ответе, используйте traceroute. Такая же идея отличается от команды, не так ли? – Sergiy Kolodyazhnyy 5 April 2015 в 21:29
  • 5
    @serg конечно, вероятно, есть длинный список команд и параметров фильтрации, sed, awk, perl, grep ... – Panther 5 April 2015 в 22:01

Как вы обычно используете 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): [ ! d3]

route -n | grep -Po "0\.0\.0\.0\s*\K\S+(?=\s*0\.0\.0\.0)"
192.168.1.1
5
ответ дан 23 May 2018 в 21:44
  • 1
    вам не нужно использовать tr, только grep выполнит задание route -n | grep -Po "0\.0\.0\.0 \s*\K\S+(?=\s*0\.0\.0\.0)" – Avinash Raj 5 April 2015 в 07:21
  • 2
    @AvinashRaj: Спасибо .. это хороший .... – heemayl 5 April 2015 в 16:37

Я использую это довольно часто:

route -n | awk '{ print $2 }' | grep -Eo '[1-9]{0,3}\.[1-9]{0,3}\.[0-9]{0,3}\.[1-9]{0,3}'
1
ответ дан 23 May 2018 в 21:44

Я использую это довольно часто и легко запомнить:

route | grep default | awk '{print $2}'
0
ответ дан 23 May 2018 в 21:44

Другие вопросы по тегам:

Похожие вопросы: