2019-11-11 18:30:46 -08:00
|
|
|
# jc.parsers.netstat
|
|
|
|
jc - JSON CLI output utility netstat Parser
|
|
|
|
|
|
|
|
Usage:
|
2019-12-12 09:47:14 -08:00
|
|
|
|
2019-11-11 18:30:46 -08:00
|
|
|
Specify --netstat as the first argument if the piped input is coming from netstat
|
|
|
|
|
2020-05-22 11:09:41 -07:00
|
|
|
Caveats:
|
|
|
|
|
|
|
|
- Use of multiple 'l' options is not supported on OSX (e.g. 'netstat -rlll')
|
|
|
|
- Use of the 'A' option is not supported on OSX when using the 'r' option (e.g. netstat -rA)
|
|
|
|
|
2019-12-12 09:35:42 -08:00
|
|
|
Compatibility:
|
2019-12-12 09:47:14 -08:00
|
|
|
|
2020-05-20 16:14:03 -07:00
|
|
|
'linux', 'darwin'
|
2019-12-12 09:35:42 -08:00
|
|
|
|
2019-11-11 18:30:46 -08:00
|
|
|
Examples:
|
|
|
|
|
2020-05-22 12:56:27 -07:00
|
|
|
# netstat -apee | jc --netstat -p
|
2019-11-11 18:30:46 -08:00
|
|
|
[
|
|
|
|
{
|
|
|
|
"proto": "tcp",
|
|
|
|
"recv_q": 0,
|
|
|
|
"send_q": 0,
|
|
|
|
"local_address": "localhost",
|
|
|
|
"foreign_address": "0.0.0.0",
|
|
|
|
"state": "LISTEN",
|
|
|
|
"user": "systemd-resolve",
|
|
|
|
"inode": 26958,
|
|
|
|
"program_name": "systemd-resolve",
|
|
|
|
"kind": "network",
|
|
|
|
"pid": 887,
|
|
|
|
"local_port": "domain",
|
|
|
|
"foreign_port": "*",
|
|
|
|
"transport_protocol": "tcp",
|
|
|
|
"network_protocol": "ipv4"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"proto": "tcp",
|
|
|
|
"recv_q": 0,
|
|
|
|
"send_q": 0,
|
|
|
|
"local_address": "0.0.0.0",
|
|
|
|
"foreign_address": "0.0.0.0",
|
|
|
|
"state": "LISTEN",
|
|
|
|
"user": "root",
|
|
|
|
"inode": 30499,
|
|
|
|
"program_name": "sshd",
|
|
|
|
"kind": "network",
|
|
|
|
"pid": 1186,
|
|
|
|
"local_port": "ssh",
|
|
|
|
"foreign_port": "*",
|
|
|
|
"transport_protocol": "tcp",
|
|
|
|
"network_protocol": "ipv4"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"proto": "tcp",
|
|
|
|
"recv_q": 0,
|
|
|
|
"send_q": 0,
|
|
|
|
"local_address": "localhost",
|
|
|
|
"foreign_address": "localhost",
|
|
|
|
"state": "ESTABLISHED",
|
|
|
|
"user": "root",
|
|
|
|
"inode": 46829,
|
|
|
|
"program_name": "sshd: root",
|
|
|
|
"kind": "network",
|
|
|
|
"pid": 2242,
|
|
|
|
"local_port": "ssh",
|
|
|
|
"foreign_port": "52186",
|
|
|
|
"transport_protocol": "tcp",
|
|
|
|
"network_protocol": "ipv4",
|
|
|
|
"foreign_port_num": 52186
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"proto": "tcp",
|
|
|
|
"recv_q": 0,
|
|
|
|
"send_q": 0,
|
|
|
|
"local_address": "localhost",
|
|
|
|
"foreign_address": "localhost",
|
|
|
|
"state": "ESTABLISHED",
|
|
|
|
"user": "root",
|
|
|
|
"inode": 46828,
|
|
|
|
"program_name": "ssh",
|
|
|
|
"kind": "network",
|
|
|
|
"pid": 2241,
|
|
|
|
"local_port": "52186",
|
|
|
|
"foreign_port": "ssh",
|
|
|
|
"transport_protocol": "tcp",
|
|
|
|
"network_protocol": "ipv4",
|
|
|
|
"local_port_num": 52186
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"proto": "tcp6",
|
|
|
|
"recv_q": 0,
|
|
|
|
"send_q": 0,
|
|
|
|
"local_address": "[::]",
|
|
|
|
"foreign_address": "[::]",
|
|
|
|
"state": "LISTEN",
|
|
|
|
"user": "root",
|
|
|
|
"inode": 30510,
|
|
|
|
"program_name": "sshd",
|
|
|
|
"kind": "network",
|
|
|
|
"pid": 1186,
|
|
|
|
"local_port": "ssh",
|
|
|
|
"foreign_port": "*",
|
|
|
|
"transport_protocol": "tcp",
|
|
|
|
"network_protocol": "ipv6"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"proto": "udp",
|
|
|
|
"recv_q": 0,
|
|
|
|
"send_q": 0,
|
|
|
|
"local_address": "localhost",
|
|
|
|
"foreign_address": "0.0.0.0",
|
|
|
|
"state": null,
|
|
|
|
"user": "systemd-resolve",
|
|
|
|
"inode": 26957,
|
|
|
|
"program_name": "systemd-resolve",
|
|
|
|
"kind": "network",
|
|
|
|
"pid": 887,
|
|
|
|
"local_port": "domain",
|
|
|
|
"foreign_port": "*",
|
|
|
|
"transport_protocol": "udp",
|
|
|
|
"network_protocol": "ipv4"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"proto": "raw6",
|
|
|
|
"recv_q": 0,
|
|
|
|
"send_q": 0,
|
|
|
|
"local_address": "[::]",
|
|
|
|
"foreign_address": "[::]",
|
|
|
|
"state": "7",
|
|
|
|
"user": "systemd-network",
|
|
|
|
"inode": 27001,
|
|
|
|
"program_name": "systemd-network",
|
|
|
|
"kind": "network",
|
|
|
|
"pid": 867,
|
|
|
|
"local_port": "ipv6-icmp",
|
|
|
|
"foreign_port": "*",
|
|
|
|
"transport_protocol": null,
|
|
|
|
"network_protocol": "ipv6"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"proto": "unix",
|
|
|
|
"refcnt": 2,
|
|
|
|
"flags": null,
|
|
|
|
"type": "DGRAM",
|
|
|
|
"state": null,
|
|
|
|
"inode": 33322,
|
|
|
|
"program_name": "systemd",
|
|
|
|
"path": "/run/user/1000/systemd/notify",
|
|
|
|
"kind": "socket",
|
|
|
|
"pid": 1607
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"proto": "unix",
|
|
|
|
"refcnt": 2,
|
|
|
|
"flags": "ACC",
|
|
|
|
"type": "SEQPACKET",
|
|
|
|
"state": "LISTENING",
|
|
|
|
"inode": 20835,
|
|
|
|
"program_name": "init",
|
|
|
|
"path": "/run/udev/control",
|
|
|
|
"kind": "socket",
|
|
|
|
"pid": 1
|
|
|
|
},
|
|
|
|
...
|
|
|
|
]
|
|
|
|
|
2020-05-22 12:56:27 -07:00
|
|
|
$ netstat -r | jc --netstat -p
|
2019-11-11 18:30:46 -08:00
|
|
|
[
|
|
|
|
{
|
2020-05-22 12:56:27 -07:00
|
|
|
"destination": "default",
|
|
|
|
"gateway": "gateway",
|
|
|
|
"genmask": "0.0.0.0",
|
|
|
|
"route_flags": "UG",
|
|
|
|
"mss": 0,
|
|
|
|
"window": 0,
|
|
|
|
"irtt": 0,
|
|
|
|
"iface": "ens33",
|
|
|
|
"kind": "route"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"destination": "172.17.0.0",
|
|
|
|
"gateway": "0.0.0.0",
|
|
|
|
"genmask": "255.255.0.0",
|
|
|
|
"route_flags": "U",
|
|
|
|
"mss": 0,
|
|
|
|
"window": 0,
|
|
|
|
"irtt": 0,
|
|
|
|
"iface": "docker0",
|
|
|
|
"kind": "route"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"destination": "192.168.71.0",
|
|
|
|
"gateway": "0.0.0.0",
|
|
|
|
"genmask": "255.255.255.0",
|
|
|
|
"route_flags": "U",
|
|
|
|
"mss": 0,
|
|
|
|
"window": 0,
|
|
|
|
"irtt": 0,
|
|
|
|
"iface": "ens33",
|
|
|
|
"kind": "route"
|
|
|
|
}
|
2019-11-11 18:30:46 -08:00
|
|
|
]
|
|
|
|
|
2019-12-14 23:35:42 -08:00
|
|
|
## info
|
|
|
|
```python
|
|
|
|
info(self, /, *args, **kwargs)
|
|
|
|
```
|
|
|
|
|
2019-11-11 18:30:46 -08:00
|
|
|
## process
|
|
|
|
```python
|
|
|
|
process(proc_data)
|
|
|
|
```
|
|
|
|
|
2019-11-12 11:28:10 -08:00
|
|
|
Final processing to conform to the schema.
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
2019-11-13 08:04:40 -08:00
|
|
|
proc_data: (dictionary) raw structured data to process
|
2019-11-12 11:28:10 -08:00
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
2019-12-17 09:56:09 -08:00
|
|
|
List of dictionaries. Structured data with the following schema:
|
2019-11-11 18:30:46 -08:00
|
|
|
|
|
|
|
[
|
|
|
|
{
|
|
|
|
"proto": string,
|
|
|
|
"recv_q": integer,
|
|
|
|
"send_q": integer,
|
|
|
|
"transport_protocol" string,
|
|
|
|
"network_protocol": string,
|
|
|
|
"local_address": string,
|
|
|
|
"local_port": string,
|
|
|
|
"local_port_num": integer,
|
|
|
|
"foreign_address": string,
|
|
|
|
"foreign_port": string,
|
|
|
|
"foreign_port_num": integer,
|
|
|
|
"state": string,
|
|
|
|
"program_name": string,
|
|
|
|
"pid": integer,
|
|
|
|
"user": string,
|
|
|
|
"security_context": string,
|
|
|
|
"refcnt": integer,
|
|
|
|
"flags": string,
|
|
|
|
"type": string,
|
|
|
|
"inode": integer,
|
|
|
|
"path": string,
|
2020-05-20 16:14:03 -07:00
|
|
|
"kind": string,
|
|
|
|
"address": string,
|
|
|
|
"osx_inode": string,
|
|
|
|
"conn": string,
|
|
|
|
"refs": string,
|
|
|
|
"nextref": string,
|
|
|
|
"name": string,
|
|
|
|
"unit": integer,
|
|
|
|
"vendor": integer,
|
|
|
|
"class": integer,
|
|
|
|
"subcla": integer,
|
|
|
|
"osx_flags": integer,
|
|
|
|
"pcbcount": integer,
|
|
|
|
"rcvbuf": integer,
|
|
|
|
"sndbuf": integer,
|
|
|
|
"rxbytes": integer,
|
2020-05-22 11:09:41 -07:00
|
|
|
"txbytes": integer,
|
|
|
|
"destination": string,
|
|
|
|
"gateway": string,
|
|
|
|
"route_flags": string,
|
|
|
|
"route_refs": integer,
|
|
|
|
"use": integer,
|
|
|
|
"mtu": integer,
|
2020-05-22 12:00:26 -07:00
|
|
|
"expire": string,
|
|
|
|
"genmask": string,
|
|
|
|
"mss": integer,
|
|
|
|
"window": integer,
|
|
|
|
"irtt": integer,
|
|
|
|
"iface": string,
|
|
|
|
"metric": integer
|
2019-11-11 18:30:46 -08:00
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
## parse
|
|
|
|
```python
|
|
|
|
parse(data, raw=False, quiet=False)
|
|
|
|
```
|
|
|
|
|
2019-11-12 11:18:00 -08:00
|
|
|
Main text parsing function
|
2019-11-11 18:30:46 -08:00
|
|
|
|
2019-11-12 11:18:00 -08:00
|
|
|
Parameters:
|
2019-11-11 18:30:46 -08:00
|
|
|
|
2019-11-12 11:18:00 -08:00
|
|
|
data: (string) text data to parse
|
|
|
|
raw: (boolean) output preprocessed JSON if True
|
|
|
|
quiet: (boolean) suppress warning messages if True
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
2019-12-17 10:09:19 -08:00
|
|
|
List of dictionaries. Raw or processed structured data.
|
2019-11-11 18:30:46 -08:00
|
|
|
|