Как извлечь последнюю числовую последовательность в IP-адрес (с использованием Linux)

0

Я хочу извлечь последние цифры IP-адреса на основе результата команды ifconfig.

ifconfig часто включает в себя целую кучу выходных данных, поэтому я не совсем уверен, как получить нужные цифры.

пример:

root@my-pc:~/scripts# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr b8:44:ca:43:d5:99  
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:33685377 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29363607 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3918498595 (3.6 GiB)  TX bytes:3888643193 (3.6 GiB)

Я хочу получить номер 15 от IP-адреса, который 192.168.1.15

Спасибо большое :)

пс. Не совсем уверен, какие теги использовать, поэтому извиняюсь заранее

mrjayviper
источник
1
Для чего вам это нужно?
grawity

Ответы:

3
ip -o addr show dev "eth0" | awk '$3 == "inet" {print $4}' | sed -r 's!/.*!!; s!.*\.!!'

(Не использовать ifconfig - использовать ip addr.)

Кроме того, не забывайте, что интерфейс может иметь множественный IP-адреса; не все адреса /24 «S; не все адреса начинаются с 192.168.1.; и не все адреса IPv4. Поэтому такие «быстрые» сценарии будут ломаться во многих системах.

grawity
источник
Спасибо! оно работает. Это домашняя сеть, поэтому я могу контролировать, какой диапазон IP использовать. :)
mrjayviper