1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00
Files
jc/docs/parsers/arp.md
2020-08-05 13:32:59 -07:00

2.9 KiB

jc.parsers.arp

jc - JSON CLI output utility arp Parser

Usage (cli):

specify --arp as the first argument if the piped input is coming from:

arp
  or
arp -a

Usage (module):

import jc.parsers.arp
result = jc.parsers.arp.parse(arp_command_output)

Compatibility:

'linux', 'aix', 'freebsd', 'darwin'

Examples:

$ arp | jc --arp -p
[
  {
    "address": "192.168.71.254",
    "hwtype": "ether",
    "hwaddress": "00:50:56:f0:98:26",
    "flags_mask": "C",
    "iface": "ens33"
  },
  {
    "address": "gateway",
    "hwtype": "ether",
    "hwaddress": "00:50:56:f7:4a:fc",
    "flags_mask": "C",
    "iface": "ens33"
  }
]

$ arp | jc --arp -p -r
[
  {
    "address": "gateway",
    "hwtype": "ether",
    "hwaddress": "00:50:56:f7:4a:fc",
    "flags_mask": "C",
    "iface": "ens33"
  },
  {
    "address": "192.168.71.254",
    "hwtype": "ether",
    "hwaddress": "00:50:56:fe:7a:b4",
    "flags_mask": "C",
    "iface": "ens33"
  }
]

$ arp -a | jc --arp -p
[
  {
    "name": null,
    "address": "192.168.71.254",
    "hwtype": "ether",
    "hwaddress": "00:50:56:f0:98:26",
    "iface": "ens33"
    "permanent": false,
    "expires": 1182
  },
  {
    "name": "gateway",
    "address": "192.168.71.2",
    "hwtype": "ether",
    "hwaddress": "00:50:56:f7:4a:fc",
    "iface": "ens33"
    "permanent": false,
    "expires": 110
  }
]

$ arp -a | jc --arp -p -r
[
  {
    "name": "?",
    "address": "192.168.71.254",
    "hwtype": "ether",
    "hwaddress": "00:50:56:fe:7a:b4",
    "iface": "ens33"
    "permanent": false,
    "expires": "1182"
  },
  {
    "name": "_gateway",
    "address": "192.168.71.2",
    "hwtype": "ether",
    "hwaddress": "00:50:56:f7:4a:fc",
    "iface": "ens33"
    "permanent": false,
    "expires": "110"
  }
]

info

info()

process

process(proc_data)

Final processing to conform to the schema.

Parameters:

proc_data:   (dictionary) raw structured data to process

Returns:

List of dictionaries. Structured data with the following schema:

[
  {
    "name":       string,
    "address":    string,
    "hwtype":     string,
    "hwaddress":  string,
    "flags_mask": string,
    "iface":      string,
    "permanent":  boolean,
    "expires":    integer
  }
]

parse

parse(data, raw=False, quiet=False)

Main text parsing function

Parameters:

data:        (string)  text data to parse
raw:         (boolean) output preprocessed JSON if True
quiet:       (boolean) suppress warning messages if True

Returns:

List of dictionaries. Raw or processed structured data.