首先,你要能够抓到数据包。
有一个问题就是数据包在网络上跑来跑去的,它怎么会到你的电脑上来?这个就要看具体的环境了,不过一般来说是根据你的需要,从关键的交换机或路由器上映射一个镜像端口,你的电脑连接这个镜像端口,就可以收到你想要的数据了。(我们现在正在做的项目基本上就是用这种方法收包,只不过数据量比较大,一般一个小时10来个G)另外一种方法不用动用交换机或路由器,采用旁路的方法,就是在网线中间接入一个旁路设备,这个设备将网络线信号引入到另外一根旁路的网络线上,你的电脑连接这根网线,就可以收到所有的数据包。采用哪种方法根据需要来定。
数据包都跑到你的电脑上后,你怎么提取这些数据呢?这时就可以用Delphi + WinPCap + PacketX,最终使用的还是Delphi与PacketX的Activex控件,至于怎么使用PacketX控件则很简单,它提供帮助文档,从没有接触过的,也可以在一、两天之内把它用起来。(不过很遗憾我们的项目没办法使用PacketX,因为数据量太大,造成丢包,只好用C++直接使用WinPcap的库文件)
到这里你就可以拿到用PacketX抓到的一个一个IP数据包了。
然后,最重要的就是分析。
你必须从一个数据包入手,了解一些基本的TCP/IP知识,源地址、目的地址、端口、协议类型、payload等等,具体到BT,迅雷,网络蚂蚁,网际快车,BT和迅雷用的协议是比较新的应用层协议,一个是P2P的,一个是P2SP的,怎么分析还要找相关的资料,网络蚂蚁和网际快车一般用的也就是HTTP的Get和FTP了,这个相对比较简单。
至于禁止使用BT、电驴的,你从上面都分析出来了哪个电脑使用了(源地址)BT、电驴(端口、协议类型等),直接在路由器或防火墙上access-list deny地址、端口什么的就行了。
--------------------
至于代码:我觉得思路、设计比代码更重要;核心的资料:没有什么核不核心的,有了Google和Baidu,没有什么找不到的吧?