Как извлечь последнюю числовую последовательность в 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

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

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


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. Поэтому такие «быстрые» сценарии будут ломаться во многих системах.


Спасибо! оно работает. Это домашняя сеть, поэтому я могу контролировать, какой диапазон IP использовать. :)
mrjayviper
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.