🖧 Как отфильтровать конкретный IP-адрес |

🖧 Как отфильтровать конкретный IP-адрес

Мануал

Как спарсить определнный IP-адрес.

Отображение всех назначенных IP-адресов.

ip -brief address
lo               UNKNOWN        127.0.0.1/8 ::1/128
eth0             UP             192.168.8.177/24 fe80::c278:a787:ec64:eb2c/64
wlan0            DOWN
tailscale0       UNKNOWN        100.83.87.118/32 fd7a:115c:a1e0:ab22:4848:ca96:6252:5676/128 fe80::4727:bc9a:13c6:b141/64

Отображение всех назначенных IP-адресов с дополнительной информацией с использованием формата вывода JSON.

🔐 Wrongsecrets – примеры того, как нельзя использовать секреты

ip --json address | jq --raw-output '.[]'
{
"ifindex": 1,
"ifname": "lo",
"flags": [
"LOOPBACK",
"UP",
"LOWER_UP"
],
"mtu": 65536,
"qdisc": "noqueue",
"operstate": "UNKNOWN",
"group": "default",
"txqlen": 1000,
"link_type": "loopback",
"address": "00:00:00:00:00:00",
"broadcast": "00:00:00:00:00:00",
"addr_info": [
{
"family": "inet",
"local": "127.0.0.1",
"prefixlen": 8,
"scope": "host",
"label": "lo",
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
},
{
"family": "inet6",
"local": "::1",
"prefixlen": 128,
"scope": "host",
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
}
]
}
{
"ifindex": 2,
"ifname": "eth0",
"flags": [
"BROADCAST",
"MULTICAST",
"UP",
"LOWER_UP"
],
"mtu": 1500,
"qdisc": "mq",
"operstate": "UP",
"group": "default",
"txqlen": 1000,
"link_type": "ether",
"address": "e4:5f:01:12:34:87",
"broadcast": "ff:ff:ff:ff:ff:ff",
"addr_info": [
{
"family": "inet",
"local": "192.168.8.177",
"prefixlen": 24,
"broadcast": "192.168.8.255",
"scope": "global",
"dynamic": true,
"noprefixroute": true,
"label": "eth0",
"valid_life_time": 413550,
"preferred_life_time": 327455
},
{
"family": "inet6",
"local": "fe80::c278:a787:ec64:eb2c",
"prefixlen": 64,
"scope": "link",
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
}
]
}
{
"ifindex": 3,
"ifname": "wlan0",
"flags": [
"BROADCAST",
"MULTICAST"
],
"mtu": 1500,
"qdisc": "noop",
"operstate": "DOWN",
"group": "default",
"txqlen": 1000,
"link_type": "ether",
"address": "e4:5f:01:42:3a:68",
"broadcast": "ff:ff:ff:ff:ff:ff",
"addr_info": []
}
{
"ifindex": 4,
"ifname": "tailscale0",
"flags": [
"POINTOPOINT",
"MULTICAST",
"NOARP",
"UP",
"LOWER_UP"
],
"mtu": 1280,
"qdisc": "pfifo_fast",
"operstate": "UNKNOWN",
"group": "default",
"txqlen": 500,
"link_type": "none",
"addr_info": [
{
"family": "inet",
"local": "100.83.87.118",
"prefixlen": 32,
"scope": "global",
"label": "tailscale0",
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
},
{
"family": "inet6",
"local": "fd7a:115c:a1e0:ab22:4848:ca96:6252:5676",
"prefixlen": 128,
"scope": "global",
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
},
{
"family": "inet6",
"local": "fe80::4727:bc9a:13c6:b141",
"prefixlen": 64,
"scope": "link",
"stable-privacy": true,
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
}
]
}

Отображение всех IP-адресов, назначенных глобальной области видимости.

ip --json  address | jq --raw-output '.[].addr_info | .[] | select(.scope == "global") | .local'
192.168.8.177
100.83.87.118
fd7a:115c:a1e0:ab22:4848:ca96:6252:5676

Отображение IP-адресов типа ethernet link с дополнительной информацией с использованием формата вывода JSON.

ip --json address | jq --raw-output '.[] | select(.link_type == "none")'
{
"ifindex": 4,
"ifname": "tailscale0",
"flags": [
"POINTOPOINT",
"MULTICAST",
"NOARP",
"UP",
"LOWER_UP"
],
"mtu": 1280,
"qdisc": "pfifo_fast",
"operstate": "UNKNOWN",
"group": "default",
"txqlen": 500,
"link_type": "none",
"addr_info": [
{
"family": "inet",
"local": "100.83.87.118",
"prefixlen": 32,
"scope": "global",
"label": "tailscale0",
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
},
{
"family": "inet6",
"local": "fd7a:115c:a1e0:ab22:4848:ca96:6252:5676",
"prefixlen": 128,
"scope": "global",
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
},
{
"family": "inet6",
"local": "fe80::4727:bc9a:13c6:b141",
"prefixlen": 64,
"scope": "link",
"stable-privacy": true,
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
}
]
}

Отображение всех работающих и назначенных IP-адресов с дополнительной информацией с использованием формата вывода JSON.

ip --json  address | jq --raw-output '.[] | select(.operstate == "UP") | {ifname: .ifname, addr_info: [.addr_info| .[] | {family: .family, local: .local, prefixlen: .prefixlen}]} '
{
"ifname": "eth0",
"addr_info": [
{
"family": "inet",
"local": "192.168.8.177",
"prefixlen": 24
},
{
"family": "inet6",
"local": "fe80::c278:a787:ec64:eb2c",
"prefixlen": 64
}
]
}

Выберем IP-адрес, используя определенную метку.

ip --json address | jq --raw-output '.[] | select(.addr_info[].label?) | select(.addr_info[].label == "tailscale0") | .addr_info[] | select(.family == "inet") | .local'
100.83.87.118
см. также:

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий