Я знаю, что могу получить свой локальный IP-адрес, который мне дал мой маршрутизатор / коммутатор через графический интерфейс через:
Настройки сети> Нажатие на значок шестеренки в моем соединении> Детали
Я вижу, что мой локальный адрес IPv4 - 192.168.0.33
.
Теперь я хочу получить эту информацию через скрипт, но команды вроде ifconfig
или ip addr show
не помогают, так как спамят много ненужной информации, особенно когда у меня установлено и работает множество докерских сетей:
$ ifconfig
br-22f8c9813546: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
inet6 fe80::42:6cff:fef9:ddd0 prefixlen 64 scopeid 0x20<link>
ether 02:42:6c:f9:dd:d0 txqueuelen 0 (Ethernet)
RX packets 10391 bytes 15285773 (15.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19709 bytes 2896606 (2.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
br-4ee9377a4fb8: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.27.0.1 netmask 255.255.0.0 broadcast 172.27.255.255
ether 02:42:ac:d2:0b:19 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
br-5d61846f1fe4: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.16.1 netmask 255.255.240.0 broadcast 192.168.31.255
ether 02:42:39:05:be:f5 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
br-63d1527ef2dd: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.23.0.1 netmask 255.255.0.0 broadcast 172.23.255.255
inet6 fe80::42:b4ff:fe53:65fb prefixlen 64 scopeid 0x20<link>
ether 02:42:b4:53:65:fb txqueuelen 0 (Ethernet)
RX packets 11 bytes 308 (308.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6308 bytes 1053677 (1.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
br-7f9030324082: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.24.0.1 netmask 255.255.0.0 broadcast 172.24.255.255
inet6 fe80::42:f3ff:fef5:70f3 prefixlen 64 scopeid 0x20<link>
ether 02:42:f3:f5:70:f3 txqueuelen 0 (Ethernet)
RX packets 411 bytes 59490 (59.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7005 bytes 1115316 (1.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
br-ede87c785445: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.26.0.1 netmask 255.255.0.0 broadcast 172.26.255.255
ether 02:42:4f:6e:2b:ac txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:32ff:fe09:c11d prefixlen 64 scopeid 0x20<link>
ether 02:42:32:09:c1:1d txqueuelen 0 (Ethernet)
RX packets 141965 bytes 8102281 (8.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 489342 bytes 834915500 (834.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.33 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::1bf5:8c15:d648:f3a2 prefixlen 64 scopeid 0x20<link>
inet6 2a02:8108:41bf:c4b0:94ab:8d54:b734:1cb0 prefixlen 64 scopeid 0x0<global>
inet6 2a02:8108:41bf:c4b0::3c00 prefixlen 128 scopeid 0x0<global>
inet6 2a02:8108:41bf:c4b0:d1bb:4aa7:7cce:b458 prefixlen 64 scopeid 0x0<global>
ether 00:2b:67:55:f0:7e txqueuelen 1000 (Ethernet)
RX packets 8392238 bytes 7753304474 (7.7 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3495895 bytes 829060783 (829.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 435614 bytes 34898994 (34.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 435614 bytes 34898994 (34.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth21dba4f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::70b7:7dff:fef6:1a08 prefixlen 64 scopeid 0x20<link>
ether 72:b7:7d:f6:1a:08 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93 bytes 12013 (12.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth2353f27: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::7caa:faff:fee1:1aa8 prefixlen 64 scopeid 0x20<link>
ether 7e:aa:fa:e1:1a:a8 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 106 bytes 13631 (13.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth6f6e69f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::5f:eff:fead:28dd prefixlen 64 scopeid 0x20<link>
ether 02:5f:0e:ad:28:dd txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 90 bytes 11699 (11.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth70fd5c3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::6c48:28ff:feed:5680 prefixlen 64 scopeid 0x20<link>
ether 6e:48:28:ed:56:80 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 92 bytes 11959 (11.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth78edec0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::98a5:e8ff:fe5b:a00 prefixlen 64 scopeid 0x20<link>
ether 9a:a5:e8:5b:0a:00 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 90 bytes 11699 (11.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth82f3647: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::7021:5fff:fe12:b352 prefixlen 64 scopeid 0x20<link>
ether 72:21:5f:12:b3:52 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 90 bytes 11699 (11.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethc53bf34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::1816:e4ff:fe6b:a52f prefixlen 64 scopeid 0x20<link>
ether 1a:16:e4:6b:a5:2f txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 106 bytes 13631 (13.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethff5b5ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::bc46:8eff:fe96:953f prefixlen 64 scopeid 0x20<link>
ether be:46:8e:96:95:3f txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 90 bytes 11699 (11.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.106 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2c2e:15bf:db59:7079 prefixlen 64 scopeid 0x20<link>
ether 80:30:49:50:7f:25 txqueuelen 1000 (Ethernet)
RX packets 454632 bytes 104035107 (104.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 253268 bytes 36336390 (36.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Информация там скрывается:
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.33 netmask 255.255.255.0 broadcast 192.168.0.255
, но я не знаю, как правильно отфильтровать ее. Что является более кратким способом получить мой локальный IP-адрес, данный мне маршрутизатором / коммутатором?
Я хочу следующий вывод:
$ find-my-local-ip
192.168.0.33
Автор Бруно Броноски из Unix & Linux :
ip route get 8.8.8.8 | sed -n '/src/{s/.*src *\([^ ]*\).*/\1/p;q}'
делает то, что я хочу.