Filter specific IP address.
Display all assigned IP addresses.
$ 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
Display all assigned IP addresses with additional details using JSON output format.
$ 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 } ] }
Display all IP addresses assigned to the global scope.
$ 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
Display ethernet link type IP addresses with additional details using JSON output format.
$ 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 } ] }
Display all operational and assigned IP addresses with additional details using JSON output format.
$ 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 } ] }
Select IP address using specific label.
$ 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