其实原本打算推迟发布的时间,不过既然有言在先,就先放出目前的版本。
我先把一些事情交待了(我有一个习惯,不会对那些已经在网站或blog上明确给出答案的问题给与回复。这次也是一样):
1.我目前还是对这个项目很不满意,因为它的完成度还是很低,从等会我列出的功能列表上就能看出。所以目前这个版本可用性不是很强,我已经打算在寒假放出一个我自己认为合格的版本。
2.这是我第一次接触GTK编程,甚至也是我第一次接触linux下的程序开发(之前只是编译过单文件的module)。所以一些不符合开源界规范的事情就请各位多多包涵。
3.整个工程从创建到提交只有5天时间(01/12/2008 - 01/16/2008),期间还有2天时间用于出国申请和考试复习(其间有2门考试),所以代码质量有一定影响,同时在后期(这是我网络课的大作业)临近作业检查时候也作了一些妥协。所以在寒假中会对那些缩水的部分加以改善
4.对于程序中尚未完成的部分或者会存在问题的部分,已经用"TODO"和"FIXME"标出了
5.本程序使用GTK+库和glade库,同时必然也使用了libpcap
6.不提供可执行版本,请自行编译(这个没啥好说的)。今后在完善后可能会考虑出rpm或者deb包
7.暂时不考虑为windows移植
8.采用的许可证是GPL
9.我开发的环境是Ubuntu 7.10, Anjuta IDE 2.3.0(unstable)
----------------------------------------------------
目前具有的功能:
1.完全图形化界面
2.基本的截包功能
3.包过滤(Layer II/III的协议过滤、端口过滤、ip地址过滤)
4.包数据察看
5.包的Decoder(采用树形结构表示,目前实现的是ethernet MAC, ARP/RARP, ICMP, IGMP, IP, UDP, TCP
6.包的保存(tcpdump兼容格式)
7.监听网卡选择
距离我满意还缺少的功能
1.包数据的重组
2.应用层协议的decoder
3.更完善的Filter
4.可配置的包decoder引擎
程序运行效果:
再附上些开发的环境,其实用glade还是很方便的:
源代码下载:
http://www.csksoft.net/data/legacyftp/Products/code_and_lib/code_eth-sensor_src_0.01.rar
编译和安装
1. 使用Anjuta IDE编译
2. 采用常用的编译安装流程:
./configure
make
make install
最后再补充下,这个程序和那些商业软件或者目前常用的tcpdump还是不具有可比性的,我也不打算在功能上有所超越。不过可能今后打算做一个可配置、扩充的包解析引擎。我希望实现的效果是:改善目前linux下GUI程序缺乏的情况,毕竟就我个人而言,不是所有时候都喜欢开命令行操作的,很多时候点点按钮还是很省力的事情。
其实开发这个项目效率很低,就完成的功能来说,换成windows,我可能2天内就能做完,但是linux下就不同了,很多时间都浪费在研究GTK+的使用上,GTK+是个很优秀的GUI库,或许有足够好的IDE作为支撑,windows下那些都是小儿科。
这个项目如果将来做的好,我的计划是发布在SourceForge.net, 不过将来肯定是没时间维护的了