network process monitor是一个python api,用于监视进程通信量
netprocmon的Python项目详细描述
network process monitor使python开发人员可以很容易地监视进程的网络使用情况。
目前,它与ipv4一起工作,并在python 2.7上进行了测试。
网络进程监视器贡献者2019年在The GNU General Public License v3.0。
基本
>>> import time >>> from netprocmon import Monitor >>> pid = 586 >>> with Monitor() as a: ... a.add_pid(pid) ... a.start() ... while True: ... time.sleep(5) ... print [str(n) for n in a.get_count_by_pid(pid)] ... ['NetworkTraffic(interface=eth1, recv=2302, pid=586, send=6806)'] ['NetworkTraffic(interface=eth1, recv=2832, pid=586, send=9104)'] ['NetworkTraffic(interface=eth1, recv=3548, pid=586, send=10742)', 'NetworkTraffic(interface=eth2, recv=0, pid=586, send=121)']
监听地址/接口
通过提供接口地址来限制对接口的侦听
>>> import time >>> from netprocmon import Monitor >>> pid = 586 >>> with Monitor() as a: ... a.add_pid(pid) ... a.add_address("10.0.0.21") ... a.start() ... while True: ... time.sleep(5) ... print [str(n) for n in a.get_count_by_pid(pid)] ... ['NetworkTraffic(interface=eth1, recv=530, pid=586, send=2758)'] ['NetworkTraffic(interface=eth1, recv=1538, pid=586, send=5044)'] ['NetworkTraffic(interface=eth1, recv=2386, pid=586, send=8166)']
可用常数和方法
常数
- p_tcp:定义TCP协议号
- p_udp:定义udp协议号
过程识别
- add_pid(pid):添加进程标识以计数流量
- remove_pid(pid):删除进程标识和流量计数
- get_pids():获取统计流量的进程标识列表
- get_pid_by_port(proto,port):根据监控端口获取进程标识
- clear\u pids():删除所有进程标识
倾听
- add_address(addr):添加侦听地址;它应该适合接口
- get_addresses():获取所有侦听地址
- 删除地址(addr):删除侦听地址
- clear_addresses():删除所有侦听地址
运行
- start():启动监视器
交通信息
- get_count_by_pid(pid):基于进程标识获取网络流量
端口信息
- get_ports_by_pid(pid):根据进程标识获取监视端口列表
- get_ports_by_proto(proto):获取基于TCP或UDP协议的监视端口列表;请参见p_TCP,p_UDP
- get_ports():获取所有监视端口的列表
接口信息
- get_interface_by_addr(addr):根据地址返回接口名称
- get_interface_addrs():返回所有接口地址
- get_addrs_by_interface(ifname):根据接口名返回地址