[求教]python抓包解包求指点(pcap和dpkt模块)

dayadream 2013-10-05 11:41:50
想写个抓包程序,抓取http协议的包,然后解包从包中提取url,想用pcap和dpkt模块!

之前用spcap写的,性能很差,CPU 100%

所以才想用pcap和dpkt来实现!

找高手指点一下,有哪位大神有案例,分享一下吧 !谢谢!

...全文
1626 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
墨菲叔叔 2013-10-09
  • 打赏
  • 举报
回复
引用 6 楼 dayadream 的回复:
[quote=引用 5 楼 justing_xujin 的回复:] [quote=引用 4 楼 dayadream 的回复:] [quote=引用 3 楼 justing_xujin 的回复:] 建议使用pcap+dpkt(参考文章:http://www.namibox.com/p/python-libpcap-pypcap.html),整体性能不错的,不过如果想实现大流量的实时抓包分析,需要更多的技巧,要避开Python的单核限制
嗯 之前用其它的方法实现了,但是性能很差,没办法避开单核限制,所以才想用pcap+dpkt [/quote] pcap+dpkt也无法避开单核问题,我之前的方法是用一个进程抓包写入内存文件系统,由其他几个进程分拆进行分析,性能很好[/quote] 方便贴一下你的代码我参考一下吗?你说的写入内存是写入redis?还是?[/quote] 是个完整的解决方案,不适合贴了。 是以tempfs在内存建立了文件系统,写在内存里的,这样I/O效率高很多 要知道从应用层抓网络包,如果抓的速度还赶不上网卡包到的速度,内核也是会丢包的,所以上层要足够快的处理,如果要处理非常高度,如千兆流量,就需要更高的技巧,如ZeroCopy之类的方案
dayadream 2013-10-09
  • 打赏
  • 举报
回复
引用 5 楼 justing_xujin 的回复:
[quote=引用 4 楼 dayadream 的回复:] [quote=引用 3 楼 justing_xujin 的回复:] 建议使用pcap+dpkt(参考文章:http://www.namibox.com/p/python-libpcap-pypcap.html),整体性能不错的,不过如果想实现大流量的实时抓包分析,需要更多的技巧,要避开Python的单核限制
嗯 之前用其它的方法实现了,但是性能很差,没办法避开单核限制,所以才想用pcap+dpkt [/quote] pcap+dpkt也无法避开单核问题,我之前的方法是用一个进程抓包写入内存文件系统,由其他几个进程分拆进行分析,性能很好[/quote] 方便贴一下你的代码我参考一下吗?你说的写入内存是写入redis?还是?
墨菲叔叔 2013-10-08
  • 打赏
  • 举报
回复
引用 4 楼 dayadream 的回复:
[quote=引用 3 楼 justing_xujin 的回复:] 建议使用pcap+dpkt(参考文章:http://www.namibox.com/p/python-libpcap-pypcap.html),整体性能不错的,不过如果想实现大流量的实时抓包分析,需要更多的技巧,要避开Python的单核限制
嗯 之前用其它的方法实现了,但是性能很差,没办法避开单核限制,所以才想用pcap+dpkt [/quote] pcap+dpkt也无法避开单核问题,我之前的方法是用一个进程抓包写入内存文件系统,由其他几个进程分拆进行分析,性能很好
dayadream 2013-10-08
  • 打赏
  • 举报
回复
引用 3 楼 justing_xujin 的回复:
建议使用pcap+dpkt(参考文章:http://www.namibox.com/p/python-libpcap-pypcap.html),整体性能不错的,不过如果想实现大流量的实时抓包分析,需要更多的技巧,要避开Python的单核限制
嗯 之前用其它的方法实现了,但是性能很差,没办法避开单核限制,所以才想用pcap+dpkt
墨菲叔叔 2013-10-07
  • 打赏
  • 举报
回复
建议使用pcap+dpkt(参考文章:http://www.namibox.com/p/python-libpcap-pypcap.html),整体性能不错的,不过如果想实现大流量的实时抓包分析,需要更多的技巧,要避开Python的单核限制
iasky 2013-10-06
  • 打赏
  • 举报
回复
http报文的解析可以用这个https://github.com/joyent/http-parser
panghuhu250 2013-10-05
  • 打赏
  • 举报
回复

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧