1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-13 01:20:24 +02:00

netstat cleanup

This commit is contained in:
Kelly Brazil
2019-10-21 13:41:53 -07:00
parent e57c7cc8ef
commit 5f88f7d8a0

View File

@ -11,11 +11,10 @@ Limitations:
Examples: Examples:
$ netstat -p | jc --netstat -p $ netstat -p | jc --netstat -p
[
{ {
"client": { "session_protocol": "tcp",
"tcp": { "network_protocol": "ipv4",
"ipv4": [
{
"local_address": "localhost.localdo", "local_address": "localhost.localdo",
"local_port": "34480", "local_port": "34480",
"foreign_address": "lb-192-30-255-113", "foreign_address": "lb-192-30-255-113",
@ -27,6 +26,8 @@ $ netstat -p | jc --netstat -p
"send_q": 0 "send_q": 0
}, },
{ {
"session_protocol": "tcp",
"network_protocol": "ipv4",
"local_address": "localhost.localdo", "local_address": "localhost.localdo",
"local_port": "34478", "local_port": "34478",
"foreign_address": "lb-192-30-255-113", "foreign_address": "lb-192-30-255-113",
@ -38,123 +39,92 @@ $ netstat -p | jc --netstat -p
"send_q": 0 "send_q": 0
} }
] ]
}
}
}
$ netstat -lp | jc --netstat -p $ netstat -lpn | jc --netstat -p
[
{ {
"server": { "session_protocol": "tcp",
"tcp": { "network_protocol": "ipv4",
"ipv4": [ "local_address": "127.0.0.1",
{ "local_port": "42351",
"local_address": "localhost",
"local_port": "smtp",
"foreign_address": "0.0.0.0", "foreign_address": "0.0.0.0",
"foreign_port": "*", "foreign_port": "*",
"state": "LISTEN", "state": "LISTEN",
"pid": 1594, "pid": 1112,
"program_name": "master", "program_name": "containerd",
"receive_q": 0, "receive_q": 0,
"send_q": 0 "send_q": 0
}, },
{ {
"session_protocol": "tcp",
"network_protocol": "ipv4",
"local_address": "127.0.0.53",
"local_port": "53",
"foreign_address": "0.0.0.0",
"foreign_port": "*",
"state": "LISTEN",
"pid": 885,
"program_name": "systemd-resolve",
"receive_q": 0,
"send_q": 0
},
{
"session_protocol": "tcp",
"network_protocol": "ipv4",
"local_address": "0.0.0.0", "local_address": "0.0.0.0",
"local_port": "ssh", "local_port": "22",
"foreign_address": "0.0.0.0", "foreign_address": "0.0.0.0",
"foreign_port": "*", "foreign_port": "*",
"state": "LISTEN", "state": "LISTEN",
"pid": 21918, "pid": 1127,
"program_name": "sshd", "program_name": "sshd",
"receive_q": 0, "receive_q": 0,
"send_q": 0 "send_q": 0
}
],
"ipv6": [
{
"local_address": "localhost",
"local_port": "smtp",
"foreign_address": "[::]",
"foreign_port": "*",
"state": "LISTEN",
"pid": 1594,
"program_name": "master",
"receive_q": 0,
"send_q": 0
}, },
{ {
"local_address": "[::]", "session_protocol": "tcp",
"local_port": "ssh", "network_protocol": "ipv6",
"foreign_address": "[::]", "local_address": "::",
"local_port": "22",
"foreign_address": "::",
"foreign_port": "*", "foreign_port": "*",
"state": "LISTEN", "state": "LISTEN",
"pid": 21918, "pid": 1127,
"program_name": "sshd", "program_name": "sshd",
"receive_q": 0, "receive_q": 0,
"send_q": 0 "send_q": 0
},
{
"session_protocol": "udp",
"network_protocol": "ipv4",
"local_address": "127.0.0.53",
"local_port": "53",
"foreign_address": "0.0.0.0",
"foreign_port": "*",
"pid": 885,
"program_name": "systemd-resolve",
"receive_q": 0,
"send_q": 0
},
{
"session_protocol": "udp",
"network_protocol": "ipv4",
"local_address": "192.168.71.131",
"local_port": "68",
"foreign_address": "0.0.0.0",
"foreign_port": "*",
"pid": 867,
"program_name": "systemd-network",
"receive_q": 0,
"send_q": 0
} }
] ]
},
"udp": {
"ipv4": [
{
"local_address": "0.0.0.0",
"local_port": "bootpc",
"foreign_address": "0.0.0.0",
"foreign_port": "*",
"pid": 13903,
"program_name": "dhclient",
"receive_q": 0,
"send_q": 0
},
{
"local_address": "localhost",
"local_port": "323",
"foreign_address": "0.0.0.0",
"foreign_port": "*",
"pid": 30926,
"program_name": "chronyd",
"receive_q": 0,
"send_q": 0
}
],
"ipv6": [
{
"local_address": "localhost",
"local_port": "323",
"foreign_address": "[::]",
"foreign_port": "*",
"pid": 30926,
"program_name": "chronyd",
"receive_q": 0,
"send_q": 0
}
]
}
}
}
""" """
import string import string
output = [] output = []
class state():
section = ''
session = ''
network = ''
client_tcp_ip4 = []
client_tcp_ip6 = []
client_udp_ip4 = []
client_udp_ip6 = []
server_tcp_ip4 = []
server_tcp_ip6 = []
server_udp_ip4 = []
server_udp_ip6 = []
def parse_line(entry): def parse_line(entry):
parsed_line = entry.split() parsed_line = entry.split()
output_line = {} output_line = {}
@ -176,6 +146,8 @@ def parse_line(entry):
else: else:
output_line['network_protocol'] = 'ipv4' output_line['network_protocol'] = 'ipv4'
else:
return
output_line['local_address'] = parsed_line[3].rsplit(':', 1)[0] output_line['local_address'] = parsed_line[3].rsplit(':', 1)[0]
output_line['local_port'] = parsed_line[3].rsplit(':', 1)[-1] output_line['local_port'] = parsed_line[3].rsplit(':', 1)[-1]
@ -220,4 +192,5 @@ def parse(data):
output.append(parse_line(line)) output.append(parse_line(line))
return output clean_output = list(filter(None, output))
return clean_output