Как я могу использовать скрипт для получения IP-адреса из ifconfig, если размер IP-адреса меняется с каждым соединением?

В настоящее время я работаю с этим

     IFTUN="$(ifconfig tun)"
     IPADD=${IFTUN:106:13}
     echo $IPADD

Но если размер IP-адреса изменится, это больше не сработает.

     inet addr:1.2.3.4  P-t-P:1.2.3.4  Mask:255.255.254.0
     UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
     RX packets:1151 errors:0 dropped:0 overruns:0 frame:0

Итак, мне нужен способ получить IP от ifconfig, независимо от того, какое число символов равно «1.2.3.4» или сказать «111.22.3.44» или даже » 111.222.333.444"

1
задан 22 April 2016 в 15:23

3 ответа

Для получения Адреса IP от Ifconfig, можно использовать это:

echo `ifconfig tun0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'`

Эта команда получит IP-адрес tun0.

0
ответ дан 23 April 2016 в 01:23
  • 1
    Неважно, сколько новых терминалов я открываюсь, who дает мне только имя пользователя tty7 – Sandro Sivsivadzé 9 September 2017 в 10:09

Используйте ip команда insted ifconfig, который удерживается от использования.

ipAddr=$( ip a s eth0 | awk '/inet.*brd/ {print $2}' )

Демонстрационный вывод: 172.16.2.136/16

, Если Вы не хотите включать CIDR, используйте это:

ipAddr=$( ip a s eth0 | awk '/inet.*brd/ {print $2}' | awk -F'/' '{print $1}' )

Демонстрационный вывод: 172.16.2.136

0
ответ дан 23 April 2016 в 01:23
  • 1
    Я использую Эмулятор терминала GNOME. Установленный по умолчанию на моем Ubuntu. – Sandro Sivsivadzé 9 September 2017 в 10:39

Я не использовал бы ifconfig, потому что, по крайней мере, на некотором дистрибутиве он заменяется IP

, Если Вы знаете свой интерфейс, можно сделать это:

ip addr |grep eth0 |grep inet |awk '{печатает 2$}',

Он даст Вам маску также, которую можно отключить как это

, ip addr |grep eth0 |grep inet |awk '{печатает 2$}' |cut-d "/"-f 1

, я предполагаю, что Вы используете удар для своего сценария. При использовании другого языка, Вы могли бы также разбудить свое имя хоста и посмотреть, это IP

0
ответ дан 23 April 2016 в 01:23
  • 1
    Это работает с xterm. Я получаю под управлением список терминалов после who. – Sandro Sivsivadzé 9 September 2017 в 10:42

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

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