Я хочу извлечь последние цифры 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 ответ1

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

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

Также не забывайте, что интерфейс может иметь несколько IP-адресов; не все адреса /24 ; не все адреса начинаются с 192.168.1. ; и не все адреса IPv4. Следовательно, такие "быстрые" скрипты будут ломаться во многих системах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .