免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3022 | 回复: 7
打印 上一主题 下一主题

讨论:Linux下抓包程序对抓取数据的处理! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-08 12:45 |只看该作者 |倒序浏览
近来写了个抓包程序,放在网络出口处,出发点是抓取所有用户的包,然后写到数据库里面。
处理流程是这样:
1.把抓取的包信息写到一文件里面,信息为源IP,目的IP,源端口,目的端口,抓包时间等5项
2.按固定的时间(比如说1个小时)对文件进行处理,所作的处理为用gawk把文件组织成sql语句,
  例如:
  抓取的文件的内容是"123.123.123.123,10.10.10.10,4523,80,2007-02-09 12:00:00"
  通过gawk后,文件内容变为
  insert into tableA values("123.123.123.123","10.10.10.10","4523","80","2007-02-09 12:00:00");

3.将2中生成的文件result,用mysql命令导入数据库,mysql db<result
4.循环上述所说的

外界条件:
网络出口处流量18Mbps
Linux下文件大小有限制,为2G

问题:
随着用户数量增多,每小时抓取的数据量必定会超过2G,如何解决?即使把1个小时改为半个小时,也会出现超2G的情况。这里暂不作大文件(超2G)处理。
我觉得我这样做法的效率很低,但又说不出低在那里,请指点?
程序曾经出现过写数入据库丢失数据现象,我怀疑是由于上次数据未处理完入库而下一次又开始处理数据入库造成的。

请问,怎样才能高效的处理上述的情况?请各位指点!如果各位有更好的想法,请提出,谢谢!

论坛徽章:
0
2 [报告]
发表于 2007-02-09 13:48 |只看该作者
顶顶先!
请大家发表看法!

论坛徽章:
0
3 [报告]
发表于 2007-02-10 12:39 |只看该作者
顶顶先!
请大家发表看法

论坛徽章:
0
4 [报告]
发表于 2007-02-10 12:47 |只看该作者
Linux下文件大小有限制,为2G


非也。你用了 大文件支持吗?

论坛徽章:
0
5 [报告]
发表于 2007-02-12 15:55 |只看该作者
原帖由 langue 于 2007-2-10 12:47 发表于 4楼  


非也。你用了 大文件支持吗?

我在提问中提出了“暂不作大文件处理”,请大家继续~~!

论坛徽章:
0
6 [报告]
发表于 2007-02-13 10:25 |只看该作者
我也写了一个这样的程序  跟你的查不多  也是抓取数据包后 写入MYSQL  利用的是libpcap。。都是所有的数据包都抓取。。。。。
现在我也在想 有过滤的 抓取。。。不能都抓。。。这样太影响网络。。。


我想 你跟我想的一样  。。。高效的利用   。。。就要对数据包 进行过滤。。。。抓取一部分。。。想要的。。 在libpcap里面 有个这样的函数。。。

论坛徽章:
0
7 [报告]
发表于 2007-02-13 23:33 |只看该作者
原帖由 changxy 于 2007-2-13 10:25 发表于 6楼  
我也写了一个这样的程序  跟你的查不多  也是抓取数据包后 写入MYSQL  利用的是libpcap。。都是所有的数据包都抓取。。。。。
现在我也在想 有过滤的 抓取。。。不能都抓。。。这样太影响网络。。。


我想 ...

我想,如果一边抓一边写入mysql的话处理速度会不会变低了?会导致有些包抓取不了吗?
libpcap我没有用过,找个看看~!
请大家继续发言~~~~~~~~~!

论坛徽章:
0
8 [报告]
发表于 2007-02-15 09:57 |只看该作者
采用多进程编程。。。研究中ing

[ 本帖最后由 changxy 于 2007-2-16 09:19 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP