1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-21 00:19:42 +02:00
Files
jc/docs/parsers/ss.md
2019-11-13 08:04:40 -08:00

4.2 KiB

jc.parsers.ss

jc - JSON CLI output utility ss Parser

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

Examples:

  $ sudo ss -a | jc --ss -p
  [
    {
      "netid": "nl",
      "state": "UNCONN",
      "recv_q": 0,
      "send_q": 0,
      "local_address": "rtnl",
      "local_port": "kernel",
      "peer_address": "*"
    },
    {
      "netid": "nl",
      "state": "UNCONN",
      "recv_q": 0,
      "send_q": 0,
      "local_address": "rtnl",
      "local_port": "systemd-resolve/893",
      "peer_address": "*"
    },
    {
      "netid": "nl",
      "state": "UNCONN",
      "recv_q": 0,
      "send_q": 0,
      "local_address": "rtnl",
      "local_port": "systemd/1",
      "peer_address": "*"
    },
    ...
    {
      "netid": "tcp",
      "state": "LISTEN",
      "recv_q": 0,
      "send_q": 128,
      "local_address": "127.0.0.1",
      "local_port": "35485",
      "peer_address": "0.0.0.0",
      "peer_port": "*",
      "interface": "lo"
    },
    {
      "netid": "tcp",
      "state": "LISTEN",
      "recv_q": 0,
      "send_q": 128,
      "local_address": "[::]",
      "local_port": "ssh",
      "peer_address": "[::]",
      "peer_port": "*"
    },
    {
      "netid": "v_str",
      "state": "ESTAB",
      "recv_q": 0,
      "send_q": 0,
      "local_address": "999900439",
      "local_port": "1023",
      "peer_address": "0",
      "peer_port": "976",
      "local_port_num": 1023,
      "peer_port_num": 976
    }
  ]

  $ sudo ss -a | jc --ss -p -r
  [
    {
      "netid": "nl",
      "state": "UNCONN",
      "recv_q": "0",
      "send_q": "0",
      "local_address": "rtnl",
      "local_port": "kernel",
      "peer_address": "*"
    },
    {
      "netid": "nl",
      "state": "UNCONN",
      "recv_q": "0",
      "send_q": "0",
      "local_address": "rtnl",
      "local_port": "systemd-resolve/893",
      "peer_address": "*"
    },
    {
      "netid": "nl",
      "state": "UNCONN",
      "recv_q": "0",
      "send_q": "0",
      "local_address": "rtnl",
      "local_port": "systemd/1",
      "peer_address": "*"
    },
    ...
    {
      "netid": "tcp",
      "state": "LISTEN",
      "recv_q": "0",
      "send_q": "128",
      "local_address": "127.0.0.1",
      "local_port": "35485",
      "peer_address": "0.0.0.0",
      "peer_port": "*",
      "interface": "lo"
    },
    {
      "netid": "tcp",
      "state": "LISTEN",
      "recv_q": "0",
      "send_q": "128",
      "local_address": "[::]",
      "local_port": "ssh",
      "peer_address": "[::]",
      "peer_port": "*"
    },
    {
      "netid": "v_str",
      "state": "ESTAB",
      "recv_q": "0",
      "send_q": "0",
      "local_address": "999900439",
      "local_port": "1023",
      "peer_address": "0",
      "peer_port": "976"
    }
  ]

process

process(proc_data)

Final processing to conform to the schema.

Parameters:

proc_data:   (dictionary) raw structured data to process

Returns:

dictionary   structured data with the following schema:

[
  {
    "netid":            string,
    "state":            string,
    "recv_q":           integer,
    "send_q":           integer,
    "local_address":    string,
    "local_port":       string,
    "local_port_num":   integer,
    "peer_address":     string,
    "peer_port":        string,
    "peer_port_num":    integer,
    "interface":        string
  }
]

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:

dictionary   raw or processed structured data