{
    "content": [
        {
            "type": "text",
            "text": "# ip(8) (man)\n\n## TLDR\n\n> Show/manipulate routing, devices, policy routing and tunnels.\n\n- List interfaces with detailed info:\n  `ip {{a|address}}`\n- List interfaces with brief network layer info:\n  `ip {{-br|-brief}} {{a|address}}`\n- List interfaces with brief link layer info:\n  `ip {{-br|-brief}} {{l|link}}`\n- Display the routing table:\n  `ip {{r|route}}`\n- Show neighbors (ARP table):\n  `ip {{n|neighbour}}`\n- Make an interface up/down:\n  `sudo ip {{l|link}} {{s|set}} {{ethX}} {{up|down}}`\n- Add/Delete an IP address to an interface:\n  `sudo ip {{a|address}} {{add|delete}} {{ip_address}}/{{mask}} dev {{ethX}}`\n- Add a default route:\n  `sudo ip {{r|route}} {{a|add}} default via {{ip_address}} dev {{ethX}}`\n\n*Source: tldr-pages*\n\n---\n\n**Summary:** ip - show / manipulate routing, network devices, interfaces and tunnels\n\n**Synopsis:** ip [ OPTIONS ] OBJECT { COMMAND | help }\nip [ -force ] -batch filename\nOBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap |\nmaddress | mroute | mrule | monitor | xfrm | netns | l2tp | tcpmetrics | token |\nmacsec | vrf | mptcp | ioam }\nOPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] | -d[etails] | -r[esolve] | -iec\n| -f[amily] { inet | inet6 | link } | -4 | -6 | -B | -0 | -l[oops] { maximum-addr-\nflush-attempts } | -o[neline] | -rc[vbuf] [size] | -t[imestamp] | -ts[hort] |\n-n[etns] name | -N[umeric] | -a[ll] | -c[olor] | -br[ief] | -j[son] | -p[retty] }\n\n## Flags\n\n| Flag | Long | Arg | Description |\n|------|------|-----|-------------|\n| -V | — | — | Print the version of the ip utility and exit. |\n| -h | — | — | output statistics with human readable values followed by suffix. |\n| -b | — | — | Read commands from provided file or standard input and invoke them. First failure will cause termination of ip. |\n| — | — | — | of the commands, the application return code will be non zero. |\n| -s | — | — | Output more information. If the option appears twice or more, the amount of informa‐ tion increases. As a rule, the info |\n| -d | — | — | Output more detailed information. |\n| -l | — | — | Specify maximum number of loops the 'ip address flush' logic will attempt before giv‐ ing up. The default is 10. Zero (0 |\n| -f | — | — | Specifies the protocol family to use. The protocol family identifier can be one of inet, inet6, bridge, mpls or link. If |\n| -4 | — | — |  |\n| -6 | — | — |  |\n| -B | — | — |  |\n| -M | — | — |  |\n| -0 | — | — |  |\n| -o | — | — | output each record on a single line, replacing line feeds with the '\\' character. This is convenient when you want to co |\n| -r | — | — | use the system's name resolver to print DNS names instead of host addresses. |\n| -n | — | — | switches ip to the specified network namespace NETNS. Actually it just simplifies ex‐ ecuting of: ip netns exec NETNS ip |\n| -N | — | — | Print the number of protocol, scope, dsfield, etc directly instead of converting it to human readable name. |\n| -a | — | — | executes specified command over all objects, it depends if command supports this op‐ tion. |\n| -c | — | — | Configure color output. If parameter is omitted or always, color output is enabled re‐ gardless of stdout state. If para |\n| -t | — | — | display current time when using monitor option. |\n| — | — | — | Like -timestamp, but use shorter format. |\n| — | — | — | Set the netlink socket receive buffer size, defaults to 1MB. |\n| — | — | — |  |\n| — | — | — | Print only basic information in a tabular format for better readability. This option is currently only supported by ip a |\n| -j | — | — | Output results in JavaScript Object Notation (JSON). |\n| -p | — | — | The default JSON format is compact and more efficient to parse but hard for most users to read. This flag adds indentati |\n\n## Examples\n\n- `ip addr`\n- `Shows addresses assigned to all network interfaces.`\n- `ip neigh`\n- `Shows the current neighbour table in kernel.`\n- `ip link set x up`\n- `Bring up interface x.`\n- `ip link set x down`\n- `Bring down interface x.`\n- `ip route`\n- `Show table routes.`\n\n## See Also\n\n- ip-address(8)\n- ip-addrlabel(8)\n- ip-ioam(8)\n- ip-l2tp(8)\n- ip-link(8)\n- ip-maddress(8)\n- tor(8)\n- ip-mptcp(8)\n- ip-mroute(8)\n- ip-neighbour(8)\n- ip-netns(8)\n- ip-ntable(8)\n- ip-route(8)\n- ip-rule(8)\n- ip-tcpmetrics(8)\n- ip-token(8)\n- ip-tunnel(8)\n- ip-vrf(8)\n- ip-xfrm(8)\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (17 lines)\n- **OPTIONS** (1 lines) — 26 subsections\n  - -V -Version (3 lines)\n  - -h -human -human-readable (3 lines)\n  - -b -batch (4 lines)\n  - -force (3 lines)\n  - -s -stats -statistics (4 lines)\n  - -d -details (3 lines)\n  - -l -loops (4 lines)\n  - -f -family (8 lines)\n  - -4 -family (1 lines)\n  - -6 -family (1 lines)\n  - -B -family (1 lines)\n  - -M -family (1 lines)\n  - -0 -family (1 lines)\n  - -o -oneline (4 lines)\n  - -r -resolve (3 lines)\n  - -n -netns (10 lines)\n  - -N -Numeric (4 lines)\n  - -a -all (4 lines)\n  - -c (10 lines)\n  - -t -timestamp (3 lines)\n  - -ts -tshort (3 lines)\n  - -rc -rcvbuf (3 lines)\n  - -iec (1 lines)\n  - -br -brief (4 lines)\n  - -j -json (3 lines)\n  - -p -pretty (4 lines)\n- **IP - COMMAND SYNTAX** (1 lines) — 5 subsections\n  - address (3 lines)\n  - addrlabel (12 lines)\n  - maddress (3 lines)\n  - monitor (12 lines)\n  - neighbour (49 lines)\n- **ENVIRONMENT** (11 lines)\n- **EXIT STATUS** (4 lines)\n- **EXAMPLES** (16 lines)\n- **HISTORY** (2 lines)\n- **SEE ALSO** (5 lines)\n- **REPORTING BUGS** (5 lines)\n- **AUTHOR** (5 lines)\n\n## Full Content\n\n### NAME\n\nip - show / manipulate routing, network devices, interfaces and tunnels\n\n### SYNOPSIS\n\nip [ OPTIONS ] OBJECT { COMMAND | help }\n\n\nip [ -force ] -batch filename\n\n\nOBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap |\nmaddress | mroute | mrule | monitor | xfrm | netns | l2tp | tcpmetrics | token |\nmacsec | vrf | mptcp | ioam }\n\n\nOPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] | -d[etails] | -r[esolve] | -iec\n| -f[amily] { inet | inet6 | link } | -4 | -6 | -B | -0 | -l[oops] { maximum-addr-\nflush-attempts } | -o[neline] | -rc[vbuf] [size] | -t[imestamp] | -ts[hort] |\n-n[etns] name | -N[umeric] | -a[ll] | -c[olor] | -br[ief] | -j[son] | -p[retty] }\n\n### OPTIONS\n\n#### -V -Version\n\nPrint the version of the ip utility and exit.\n\n#### -h -human -human-readable\n\noutput statistics with human readable values followed by suffix.\n\n#### -b -batch\n\nRead commands from provided file or standard input and invoke them.  First failure\nwill cause termination of ip.\n\n#### -force\n\nof the commands, the application return code will be non zero.\n\n#### -s -stats -statistics\n\nOutput more information. If the option appears twice or more, the amount of informa‐\ntion increases.  As a rule, the information is statistics or some time values.\n\n#### -d -details\n\nOutput more detailed information.\n\n#### -l -loops\n\nSpecify maximum number of loops the 'ip address flush' logic will attempt before giv‐\ning up. The default is 10.  Zero (0) means loop until all addresses are removed.\n\n#### -f -family\n\nSpecifies the protocol family to use. The protocol family identifier can be one of\ninet, inet6, bridge, mpls or link.  If this option is not present, the protocol family\nis guessed from other arguments. If the rest of the command line does not give enough\ninformation to guess the family, ip falls back to the default one, usually inet or\nany.  link is a special family identifier meaning that no networking protocol is in‐\nvolved.\n\n#### -4 -family\n\n#### -6 -family\n\n#### -B -family\n\n#### -M -family\n\n#### -0 -family\n\n#### -o -oneline\n\noutput each record on a single line, replacing line feeds with the '\\' character. This\nis convenient when you want to count records with wc(1) or to grep(1) the output.\n\n#### -r -resolve\n\nuse the system's name resolver to print DNS names instead of host addresses.\n\n#### -n -netns\n\nswitches ip to the specified network namespace NETNS.  Actually it just simplifies ex‐\necuting of:\n\nip netns exec NETNS ip [ OPTIONS ] OBJECT { COMMAND | help }\n\nto\n\nip -n[etns] NETNS [ OPTIONS ] OBJECT { COMMAND | help }\n\n#### -N -Numeric\n\nPrint the number of protocol, scope, dsfield, etc directly instead of converting it to\nhuman readable name.\n\n#### -a -all\n\nexecutes specified command over all objects, it depends if command supports this op‐\ntion.\n\n#### -c\n\nConfigure color output. If parameter is omitted or always, color output is enabled re‐\ngardless of stdout state. If parameter is auto, stdout is checked to be a terminal be‐\nfore enabling color output. If parameter is never, color output is disabled. If speci‐\nfied multiple times, the last one takes precedence. This flag is ignored if -json is\nalso given.\n\nUsed color palette can be influenced by COLORFGBG environment variable (see ENVIRON‐‐\nMENT).\n\n#### -t -timestamp\n\ndisplay current time when using monitor option.\n\n#### -ts -tshort\n\nLike -timestamp, but use shorter format.\n\n#### -rc -rcvbuf\n\nSet the netlink socket receive buffer size, defaults to 1MB.\n\n#### -iec\n\n#### -br -brief\n\nPrint only basic information in a tabular format for better readability. This option\nis currently only supported by ip addr show , ip link show & ip neigh show commands.\n\n#### -j -json\n\nOutput results in JavaScript Object Notation (JSON).\n\n#### -p -pretty\n\nThe default JSON format is compact and more efficient to parse but hard for most users\nto read.  This flag adds indentation for readability.\n\n### IP - COMMAND SYNTAX\n\nOBJECT\n\n#### address\n\n- protocol (IP or IPv6) address on a device.\n\n#### addrlabel\n\n- label configuration for protocol address selection.\n\n\nioam   - manage IOAM namespaces and IOAM schemas.\n\n\nl2tp   - tunnel ethernet over IP (L2TPv3).\n\n\nlink   - network device.\n\n#### maddress\n\n- multicast address.\n\n#### monitor\n\n- watch for netlink messages.\n\n\nmptcp  - manage MPTCP path manager.\n\n\nmroute - multicast routing cache entry.\n\n\nmrule  - rule in multicast routing policy database.\n\n#### neighbour\n\n- manage ARP or NDISC cache entries.\n\n\nnetns  - manage network namespaces.\n\n\nntable - manage the neighbor cache's operation.\n\n\nroute  - routing table entry.\n\n\nrule   - rule in routing policy database.\n\n\ntcpmetrics/tcpmetrics\n- manage TCP Metrics\n\n\ntoken  - manage tokenized interface identifiers.\n\n\ntunnel - tunnel over IP.\n\n\ntuntap - manage TUN/TAP devices.\n\n\nvrf    - manage virtual routing and forwarding devices.\n\n\nxfrm   - manage IPSec policies.\n\n\nThe names of all objects may be written in full or abbreviated form, for example address can\nbe abbreviated as addr or just a.\n\n\nCOMMAND\nSpecifies the action to perform on the object.  The set of possible actions depends on the\nobject type.  As a rule, it is possible to add, delete and show (or list ) objects, but some\nobjects do not allow all of these operations or have some additional commands. The help com‐\nmand is available for all objects. It prints out a list of available commands and argument\nsyntax conventions.\n\nIf no command is given, some default command is assumed.  Usually it is list or, if the ob‐\njects of this class cannot be listed, help.\n\n### ENVIRONMENT\n\nCOLORFGBG\nIf set, it's value is used for detection whether background is dark or light and use\ncontrast colors for it.\n\nCOLORFGBG environment variable usually contains either two or three values separated\nby semicolons; we want the last value in either case.  If this value is 0-6 or 8,\nchose colors suitable for dark background:\n\nCOLORFGBG=\";0\" ip -c a\n\n### EXIT STATUS\n\nExit status is 0 if command was successful, and 1 if there is a syntax error.  If an error\nwas reported by the kernel exit status is 2.\n\n### EXAMPLES\n\nip addr\nShows addresses assigned to all network interfaces.\n\nip neigh\nShows the current neighbour table in kernel.\n\nip link set x up\nBring up interface x.\n\nip link set x down\nBring down interface x.\n\nip route\nShow table routes.\n\n### HISTORY\n\nip was written by Alexey N. Kuznetsov and added in Linux 2.2.\n\n### SEE ALSO\n\nip-address(8), ip-addrlabel(8), ip-ioam(8), ip-l2tp(8), ip-link(8), ip-maddress(8), ip-moni‐‐\ntor(8), ip-mptcp(8), ip-mroute(8), ip-neighbour(8), ip-netns(8), ip-ntable(8), ip-route(8),\nip-rule(8), ip-tcpmetrics(8), ip-token(8), ip-tunnel(8), ip-vrf(8), ip-xfrm(8)\nIP Command reference ip-cref.ps\n\n### REPORTING BUGS\n\nReport any bugs to the Network Developers mailing list <netdev@vger.kernel.org> where the de‐\nvelopment and maintenance is primarily done.  You do not have to be subscribed to the list to\nsend a message there.\n\n### AUTHOR\n\nOriginal Manpage by Michail Litvak <mci@owl.openwall.com>\n\n\n\niproute2                                     20 Dec 2011                                       IP(8)\n\n"
        }
    ],
    "structuredContent": {
        "command": "ip",
        "section": "8",
        "mode": "man",
        "summary": "ip - show / manipulate routing, network devices, interfaces and tunnels",
        "synopsis": "ip [ OPTIONS ] OBJECT { COMMAND | help }\nip [ -force ] -batch filename\nOBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap |\nmaddress | mroute | mrule | monitor | xfrm | netns | l2tp | tcpmetrics | token |\nmacsec | vrf | mptcp | ioam }\nOPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] | -d[etails] | -r[esolve] | -iec\n| -f[amily] { inet | inet6 | link } | -4 | -6 | -B | -0 | -l[oops] { maximum-addr-\nflush-attempts } | -o[neline] | -rc[vbuf] [size] | -t[imestamp] | -ts[hort] |\n-n[etns] name | -N[umeric] | -a[ll] | -c[olor] | -br[ief] | -j[son] | -p[retty] }",
        "tldr_summary": "Show/manipulate routing, devices, policy routing and tunnels.",
        "tldr_examples": [
            {
                "description": "List interfaces with detailed info",
                "command": "ip {{a|address}}"
            },
            {
                "description": "List interfaces with brief network layer info",
                "command": "ip {{-br|-brief}} {{a|address}}"
            },
            {
                "description": "List interfaces with brief link layer info",
                "command": "ip {{-br|-brief}} {{l|link}}"
            },
            {
                "description": "Display the routing table",
                "command": "ip {{r|route}}"
            },
            {
                "description": "Show neighbors (ARP table)",
                "command": "ip {{n|neighbour}}"
            },
            {
                "description": "Make an interface up/down",
                "command": "sudo ip {{l|link}} {{s|set}} {{ethX}} {{up|down}}"
            },
            {
                "description": "Add/Delete an IP address to an interface",
                "command": "sudo ip {{a|address}} {{add|delete}} {{ip_address}}/{{mask}} dev {{ethX}}"
            },
            {
                "description": "Add a default route",
                "command": "sudo ip {{r|route}} {{a|add}} default via {{ip_address}} dev {{ethX}}"
            }
        ],
        "tldr_source": "official",
        "flags": [
            {
                "flag": "-V",
                "long": null,
                "arg": null,
                "description": "Print the version of the ip utility and exit."
            },
            {
                "flag": "-h",
                "long": null,
                "arg": null,
                "description": "output statistics with human readable values followed by suffix."
            },
            {
                "flag": "-b",
                "long": null,
                "arg": null,
                "description": "Read commands from provided file or standard input and invoke them. First failure will cause termination of ip."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "of the commands, the application return code will be non zero."
            },
            {
                "flag": "-s",
                "long": null,
                "arg": null,
                "description": "Output more information. If the option appears twice or more, the amount of informa‐ tion increases. As a rule, the information is statistics or some time values."
            },
            {
                "flag": "-d",
                "long": null,
                "arg": null,
                "description": "Output more detailed information."
            },
            {
                "flag": "-l",
                "long": null,
                "arg": null,
                "description": "Specify maximum number of loops the 'ip address flush' logic will attempt before giv‐ ing up. The default is 10. Zero (0) means loop until all addresses are removed."
            },
            {
                "flag": "-f",
                "long": null,
                "arg": null,
                "description": "Specifies the protocol family to use. The protocol family identifier can be one of inet, inet6, bridge, mpls or link. If this option is not present, the protocol family is guessed from other arguments. If the rest of the command line does not give enough information to guess the family, ip falls back to the default one, usually inet or any. link is a special family identifier meaning that no networking protocol is in‐ volved."
            },
            {
                "flag": "-4",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-6",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-B",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-M",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-0",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-o",
                "long": null,
                "arg": null,
                "description": "output each record on a single line, replacing line feeds with the '\\' character. This is convenient when you want to count records with wc(1) or to grep(1) the output."
            },
            {
                "flag": "-r",
                "long": null,
                "arg": null,
                "description": "use the system's name resolver to print DNS names instead of host addresses."
            },
            {
                "flag": "-n",
                "long": null,
                "arg": null,
                "description": "switches ip to the specified network namespace NETNS. Actually it just simplifies ex‐ ecuting of: ip netns exec NETNS ip [ OPTIONS ] OBJECT { COMMAND | help } to ip -n[etns] NETNS [ OPTIONS ] OBJECT { COMMAND | help }"
            },
            {
                "flag": "-N",
                "long": null,
                "arg": null,
                "description": "Print the number of protocol, scope, dsfield, etc directly instead of converting it to human readable name."
            },
            {
                "flag": "-a",
                "long": null,
                "arg": null,
                "description": "executes specified command over all objects, it depends if command supports this op‐ tion."
            },
            {
                "flag": "-c",
                "long": null,
                "arg": null,
                "description": "Configure color output. If parameter is omitted or always, color output is enabled re‐ gardless of stdout state. If parameter is auto, stdout is checked to be a terminal be‐ fore enabling color output. If parameter is never, color output is disabled. If speci‐ fied multiple times, the last one takes precedence. This flag is ignored if -json is also given. Used color palette can be influenced by COLORFGBG environment variable (see ENVIRON‐‐ MENT)."
            },
            {
                "flag": "-t",
                "long": null,
                "arg": null,
                "description": "display current time when using monitor option."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Like -timestamp, but use shorter format."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Set the netlink socket receive buffer size, defaults to 1MB."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Print only basic information in a tabular format for better readability. This option is currently only supported by ip addr show , ip link show & ip neigh show commands."
            },
            {
                "flag": "-j",
                "long": null,
                "arg": null,
                "description": "Output results in JavaScript Object Notation (JSON)."
            },
            {
                "flag": "-p",
                "long": null,
                "arg": null,
                "description": "The default JSON format is compact and more efficient to parse but hard for most users to read. This flag adds indentation for readability."
            }
        ],
        "examples": [
            "ip addr",
            "Shows addresses assigned to all network interfaces.",
            "ip neigh",
            "Shows the current neighbour table in kernel.",
            "ip link set x up",
            "Bring up interface x.",
            "ip link set x down",
            "Bring down interface x.",
            "ip route",
            "Show table routes."
        ],
        "see_also": [
            {
                "name": "ip-address",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-address/8/json"
            },
            {
                "name": "ip-addrlabel",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-addrlabel/8/json"
            },
            {
                "name": "ip-ioam",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-ioam/8/json"
            },
            {
                "name": "ip-l2tp",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-l2tp/8/json"
            },
            {
                "name": "ip-link",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-link/8/json"
            },
            {
                "name": "ip-maddress",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-maddress/8/json"
            },
            {
                "name": "tor",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/tor/8/json"
            },
            {
                "name": "ip-mptcp",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-mptcp/8/json"
            },
            {
                "name": "ip-mroute",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-mroute/8/json"
            },
            {
                "name": "ip-neighbour",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-neighbour/8/json"
            },
            {
                "name": "ip-netns",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-netns/8/json"
            },
            {
                "name": "ip-ntable",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-ntable/8/json"
            },
            {
                "name": "ip-route",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-route/8/json"
            },
            {
                "name": "ip-rule",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-rule/8/json"
            },
            {
                "name": "ip-tcpmetrics",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-tcpmetrics/8/json"
            },
            {
                "name": "ip-token",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-token/8/json"
            },
            {
                "name": "ip-tunnel",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-tunnel/8/json"
            },
            {
                "name": "ip-vrf",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-vrf/8/json"
            },
            {
                "name": "ip-xfrm",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ip-xfrm/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 17,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "-V -Version",
                        "lines": 3,
                        "flag": "-V"
                    },
                    {
                        "name": "-h -human -human-readable",
                        "lines": 3,
                        "flag": "-h"
                    },
                    {
                        "name": "-b -batch",
                        "lines": 4,
                        "flag": "-b"
                    },
                    {
                        "name": "-force",
                        "lines": 3
                    },
                    {
                        "name": "-s -stats -statistics",
                        "lines": 4,
                        "flag": "-s"
                    },
                    {
                        "name": "-d -details",
                        "lines": 3,
                        "flag": "-d"
                    },
                    {
                        "name": "-l -loops",
                        "lines": 4,
                        "flag": "-l"
                    },
                    {
                        "name": "-f -family",
                        "lines": 8,
                        "flag": "-f"
                    },
                    {
                        "name": "-4 -family",
                        "lines": 1,
                        "flag": "-4"
                    },
                    {
                        "name": "-6 -family",
                        "lines": 1,
                        "flag": "-6"
                    },
                    {
                        "name": "-B -family",
                        "lines": 1,
                        "flag": "-B"
                    },
                    {
                        "name": "-M -family",
                        "lines": 1,
                        "flag": "-M"
                    },
                    {
                        "name": "-0 -family",
                        "lines": 1,
                        "flag": "-0"
                    },
                    {
                        "name": "-o -oneline",
                        "lines": 4,
                        "flag": "-o"
                    },
                    {
                        "name": "-r -resolve",
                        "lines": 3,
                        "flag": "-r"
                    },
                    {
                        "name": "-n -netns",
                        "lines": 10,
                        "flag": "-n"
                    },
                    {
                        "name": "-N -Numeric",
                        "lines": 4,
                        "flag": "-N"
                    },
                    {
                        "name": "-a -all",
                        "lines": 4,
                        "flag": "-a"
                    },
                    {
                        "name": "-c",
                        "lines": 10,
                        "flag": "-c"
                    },
                    {
                        "name": "-t -timestamp",
                        "lines": 3,
                        "flag": "-t"
                    },
                    {
                        "name": "-ts -tshort",
                        "lines": 3
                    },
                    {
                        "name": "-rc -rcvbuf",
                        "lines": 3
                    },
                    {
                        "name": "-iec",
                        "lines": 1
                    },
                    {
                        "name": "-br -brief",
                        "lines": 4
                    },
                    {
                        "name": "-j -json",
                        "lines": 3,
                        "flag": "-j"
                    },
                    {
                        "name": "-p -pretty",
                        "lines": 4,
                        "flag": "-p"
                    }
                ]
            },
            {
                "name": "IP - COMMAND SYNTAX",
                "lines": 1,
                "subsections": [
                    {
                        "name": "address",
                        "lines": 3
                    },
                    {
                        "name": "addrlabel",
                        "lines": 12
                    },
                    {
                        "name": "maddress",
                        "lines": 3
                    },
                    {
                        "name": "monitor",
                        "lines": 12
                    },
                    {
                        "name": "neighbour",
                        "lines": 49
                    }
                ]
            },
            {
                "name": "ENVIRONMENT",
                "lines": 11,
                "subsections": []
            },
            {
                "name": "EXIT STATUS",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "EXAMPLES",
                "lines": 16,
                "subsections": []
            },
            {
                "name": "HISTORY",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "REPORTING BUGS",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 5,
                "subsections": []
            }
        ]
    }
}