1.之前用了psutil模块,后来发现psutil.network_io_counters()在win7上有bug,每次取到的都是相同的数据。所以考虑换其他的方式来获取。
2.现在可以选择的有wmi模块,但是听说效率很低。直接用WMIC取得话又不是所有的win上都有这个东东。
好纠结,求指导。最好能show me the code!
TKS
1
dant 2015-03-16 11:23:46 +08:00 via iPhone
winpcap
|
2
dant 2015-03-16 11:24:26 +08:00 via iPhone
似乎楼主的需求不是抓包?那就不知道了
|
4
roricon 2015-03-16 11:47:56 +08:00
在一台linux的机器上把网卡开启混杂模式……然后监听本地局域网的通讯呢?
|
5
hahastudio 2015-03-16 12:00:36 +08:00
我不知道是不是它内部有刷新时间还是什么的,但我这里没问题
>>> psutil.net_io_counters() snetio(bytes_sent=514669575, bytes_recv=440756437, packets_sent=759901, packets_recv=740639, errin=0, errout=0, dropin=0, dropout=0) >>> psutil.net_io_counters() snetio(bytes_sent=514670215, bytes_recv=440759928, packets_sent=759911, packets_recv=740650, errin=0, errout=0, dropin=0, dropout=0) 间隔是 ctrl + c/v 的间隔 |
7
linuxzpf OP @hahastudio 这个时间间隔是就是你2次执行的时间间隔,大部分都可以取到,怪就怪在我的取不到哇。只能看看有木有其他方法。
|
8
loading 2015-03-16 12:20:13 +08:00
python 速度跟不上,做了白做。
|
10
loading 2015-03-16 12:46:12 +08:00
http://stackoverflow.com/questions/438240/monitor-a-processs-network-usage
如果你只需要速度,可以调用另一个软件,这也是 python 编程的特点。 你要原生的话,等大神! |
11
linuxzpf OP @loading 这个netstat -e这个命令不错啊,就是不知道是不是所有的windows系统上都有
这个是系统自带的命令吧。 |
12
syv2 2015-03-16 17:04:50 +08:00
tcpdump好像也有Windows版呢
|
13
cfan8 2015-03-16 18:42:49 +08:00
用windows api改路由表,把流量都走你的python proxy上走,不过性能怎么样就难说了
|
14
lingxi27 2015-03-16 18:45:33 +08:00
调windows API吧
import win32api 然后去MSDN看看GetAdaptersInfo 和 GetIfEntry的用法 |