В настоящее время я работаю с этим
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"
Для получения Адреса IP от Ifconfig
, можно использовать это:
echo `ifconfig tun0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'`
Эта команда получит IP-адрес tun0
.
Используйте 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
Я не использовал бы ifconfig, потому что, по крайней мере, на некотором дистрибутиве он заменяется IP
, Если Вы знаете свой интерфейс, можно сделать это:
ip addr |grep eth0 |grep inet |awk '{печатает 2$}',
Он даст Вам маску также, которую можно отключить как это
, ip addr |grep eth0 |grep inet |awk '{печатает 2$}' |cut-d "/"-f 1
, я предполагаю, что Вы используете удар для своего сценария. При использовании другого языка, Вы могли бы также разбудить свое имя хоста и посмотреть, это IP
who
.
– Sandro Sivsivadzé
9 September 2017 в 10:42
who
дает мне только имя пользователя tty7 – Sandro Sivsivadzé 9 September 2017 в 10:09