1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00
Files
jc/docs/parsers/iptables.md
2022-01-25 17:07:47 -08:00

3.7 KiB

Home

jc.parsers.iptables

jc - JSON CLI output utility iptables command output parser

Supports -vLn and --line-numbers for all tables.

Usage (cli):

$ sudo iptables -L -t nat | jc --iptables

or

$ jc iptables -L -t nat

Usage (module):

import jc result = jc.parse('iptables', iptables_command_output)

or

import jc.parsers.iptables result = jc.parsers.iptables.parse(iptables_command_output)

Schema:

[ { "chain": string, "rules": [ { "num" integer, "pkts": integer, "bytes": integer, # converted based on suffix "target": string, "prot": string, "opt": string, # "--" = Null "in": string, "out": string, "source": string, "destination": string, "options": string } ] } ]

Examples:

$ sudo iptables --line-numbers -v -L -t nat | jc --iptables -p [ {

  • "chain" - "PREROUTING",

  • "rules" - [ {

  • "num" - 1,

  • "pkts" - 2183,

  • "bytes" - 186000,

  • "target" - "PREROUTING_direct",

  • "prot" - "all",

  • "opt" - null,

  • "in" - "any",

  • "out" - "any",

  • "source" - "anywhere",

  • "destination" - "anywhere" }, {

  • "num" - 2,

  • "pkts" - 2183,

  • "bytes" - 186000,

  • "target" - "PREROUTING_ZONES_SOURCE",

  • "prot" - "all",

  • "opt" - null,

  • "in" - "any",

  • "out" - "any",

  • "source" - "anywhere",

  • "destination" - "anywhere" }, {

  • "num" - 3,

  • "pkts" - 2183,

  • "bytes" - 186000,

  • "target" - "PREROUTING_ZONES",

  • "prot" - "all",

  • "opt" - null,

  • "in" - "any",

  • "out" - "any",

  • "source" - "anywhere",

  • "destination" - "anywhere" }, {

  • "num" - 4,

  • "pkts" - 0,

  • "bytes" - 0,

  • "target" - "DOCKER",

  • "prot" - "all",

  • "opt" - null,

  • "in" - "any",

  • "out" - "any",

  • "source" - "anywhere",

  • "destination" - "anywhere",

  • "options" - "ADDRTYPE match dst-type LOCAL" } ] }, ... ]

    $ sudo iptables --line-numbers -v -L -t nat | jc --iptables -p -r [ {

  • "chain" - "PREROUTING",

  • "rules" - [ {

  • "num" - "1",

  • "pkts" - "2183",

  • "bytes" - "186K",

  • "target" - "PREROUTING_direct",

  • "prot" - "all",

  • "opt" - "--",

  • "in" - "any",

  • "out" - "any",

  • "source" - "anywhere",

  • "destination" - "anywhere" }, {

  • "num" - "2",

  • "pkts" - "2183",

  • "bytes" - "186K",

  • "target" - "PREROUTING_ZONES_SOURCE",

  • "prot" - "all",

  • "opt" - "--",

  • "in" - "any",

  • "out" - "any",

  • "source" - "anywhere",

  • "destination" - "anywhere" }, {

  • "num" - "3",

  • "pkts" - "2183",

  • "bytes" - "186K",

  • "target" - "PREROUTING_ZONES",

  • "prot" - "all",

  • "opt" - "--",

  • "in" - "any",

  • "out" - "any",

  • "source" - "anywhere",

  • "destination" - "anywhere" }, {

  • "num" - "4",

  • "pkts" - "0",

  • "bytes" - "0",

  • "target" - "DOCKER",

  • "prot" - "all",

  • "opt" - "--",

  • "in" - "any",

  • "out" - "any",

  • "source" - "anywhere",

  • "destination" - "anywhere",

  • "options" - "ADDRTYPE match dst-type LOCAL" } ] }, ... ]

info Objects

class info()

Provides parser metadata (version, author, etc.)

parse

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

Main text parsing function

Arguments:

  • data - (string) text data to parse
  • raw - (boolean) unprocessed output if True
  • quiet - (boolean) suppress warning messages if True

Returns:

List of Dictionaries. Raw or processed structured data.

Parser Information

Compatibility: linux

Version 1.7 by Kelly Brazil (kellyjonbrazil@gmail.com)