7
"""A clone of 'netstat -antp' on Linux.
9
$ python3 scripts/netstat.py
10
Proto Local address Remote address Status PID Program name
11
tcp 127.0.0.1:48256 127.0.0.1:45884 ESTABLISHED 13646 chrome
12
tcp 127.0.0.1:47073 127.0.0.1:45884 ESTABLISHED 13646 chrome
13
tcp 127.0.0.1:47072 127.0.0.1:45884 ESTABLISHED 13646 chrome
14
tcp 127.0.0.1:45884 - LISTEN 13651 GoogleTalkPlugi
15
tcp 127.0.0.1:60948 - LISTEN 13651 GoogleTalkPlugi
16
tcp 172.17.42.1:49102 127.0.0.1:19305 CLOSE_WAIT 13651 GoogleTalkPlugi
17
tcp 172.17.42.1:55797 127.0.0.1:443 CLOSE_WAIT 13651 GoogleTalkPlugi
22
from socket import AF_INET
23
from socket import SOCK_DGRAM
24
from socket import SOCK_STREAM
30
AF_INET6 = getattr(socket, 'AF_INET6', object())
32
(AF_INET, SOCK_STREAM): 'tcp',
33
(AF_INET6, SOCK_STREAM): 'tcp6',
34
(AF_INET, SOCK_DGRAM): 'udp',
35
(AF_INET6, SOCK_DGRAM): 'udp6',
40
templ = "%-5s %-30s %-30s %-13s %-6s %s"
51
for p in psutil.process_iter(['pid', 'name']):
52
proc_names[p.info['pid']] = p.info['name']
53
for c in psutil.net_connections(kind='inet'):
54
laddr = "%s:%s" % (c.laddr)
57
raddr = "%s:%s" % (c.raddr)
58
name = proc_names.get(c.pid, '?') or ''
60
proto_map[(c.family, c.type)],
70
if __name__ == '__main__':