059_互联网论坛监测系统(C语言)
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
论坛监测软件主要功能
对外部网络的监测:
根据具体网络大小和监测应用的范围有所不同而做些修改即可。通过监测机对网络中所有主机的数据进行检测,收集网络中的数据,当发现正常的数据流时,监测机不采取任何动作,当发现有敏感的数据时即可将其先隔离并保存下来,然后报警,通过管理员的操作和检验后再对用户pc加以处理。这样的工作流程对于中小型企业来说是比较适用,只需要一个监测软件即可,设备的投入也不大,效果也比较好。
数据获取:
•互联网论坛监测系统呈现简洁、归一化的操作界面,多线程获取网站发布数据。
•在管理人员设定的遍历层数范围内,系统递归获取起始及随后页面中所有超链接所对应的内容。
•系统在受限于上述遍历层数的同时,还能接受管理人员对于最大下载字节数与每次请求间隔时间的设置,从而避免因其内容获取操作而造成目标论坛的工作负载骤然增加。
•接入互联网,对定点网站、论坛进行数据深入挖掘,基于发帖人、发帖时间、主题及正文进行分类检索与统计,对目标站点的信息提取率达到90%。专项针对目标论坛的信息发布进行内容获取,对目标论坛分组,基于论坛组进行高效的轮询式全文获取;采用纯文本方式存储,以最大限度节约空间。 【买计算机毕业论文就到www.think58.com】 内容来自think58
[资料来源:THINK58.com]
•显示当前已经获取帖子的发帖人、发帖时间、帖子位置、帖子标题、帖子URL等基本信息。
内容过滤功能:
包括对不需要监视的对象、内容、行为进行过滤(忽略监视),可针对3种对象(整个网络、分组、电脑)。
•全部监视/不监视、只监视部分应用。根据不用管理需要,可设置为某些对象监视,某些对象不监视(比如管理员和老板没有必要被监视),某些用户应用监视,某些应用不监视。由于网页监视很多广告垃圾而且比较消耗硬盘空间等资源。
•如果有人在观看网站的帖子后,想发表评论,如果评论中包含色情和反动的字眼就自动删除该帖子,并发出警报。
•网站过滤白名单和黑名单功能。可设置只监视具体的一些网站,也可以忽略监视某些网站;比如一个公司里通常SINA这样的网站可能同时所有的人都有去看,如果都监视的话将相当浪费资源又内容重复,实际上也无意义和必要。因此采用过滤方法模糊控制模式去忽略对一些公共的东西过滤。比如输入SINA,将过滤全部包含SINA的所有URL访问,这叫做白名单过滤。对包含色情和反动信息的过滤叫做黑名单过滤。
流量监视与限制:
包括针对具体的对象,能够详细准确监视其发生的流量,并能够限制其占据的流量带宽。
copyright think58
[资料来源:THINK58.com]
数据备份和配置管理:
包括允许定义数据保存时间或删除过时的数据。数据、配置和日志的查看、打印、备份恢复功能。简单容易的数据备份方式和海量存储模式。支持监视内容和配置文件的海量模式备份、恢复。
4.2论坛监测系统功能模块的描述
对用户上网行为的监测和管理事实上要配合一个复杂的网络系统体系去实现,首先要定义网络用户的类型,普通用户、管理员等都应有不同的网络权限去获得网络的资源,因此就需要网管功能的软硬件了。此外对用户的数据的监测就只能通过流控设备去实现,了解所使用的各个服务的流量,对敏感的流量和服务有必要进行抓包分析。特别是对技术含量较高的企业有很大用途。
本系统根据功能模块化分为后台和前台软件两部分。后台部分由主进程和主线程完成。主进程通过主控模块实现。主线程通过包捕获模块、解码模块、模式匹配模块和输出模块来完成。前台部分包括图形显示模块、命令模块。
主控模块实现的功能包括所有模块的初始化、命令行解释、配置文件解释、建立主线程、关闭主线程。
包捕获模块是主线程的主程序,它将数据包捕获后的处理交给解码模块。解码模块,定义不同的数据结构取得IP地址、TCP层的端口号以及信息实体等数据,在将这些数据填写到数据结构中供模式匹配模块来使用。
[资料来源:THINK58.com]
解码模块把从网络上抓取的原始数据包,从下向上沿各个协议栈进行解码并填充相应的数据结构,以便模式匹配模块处理。
模式匹配模块应用KWP算法将匹配字库与捕获到的IM信息进行匹配,提取有害信息,对有害信息进行定位。
输出模块接收模式匹配模块匹配出的结果建立黑名单,根据输出类型分别分发到图形显示模块、日志模块及提供黑名单给网关计算机以便于拦截计算机拦截有害内容。
命令模块将用户的信息传递给主控模块。
图形显示模块显示目前的关键字和匹配成功的信息和信息的源IP地址、目的IP地址、端口号、ID号。
日志模块实现各种报文日志功能,也就是把各种类型的报文记录到各科类型的日志中。
系统功能模块图如下图7:
图7 系统功能模块
5论坛监测软件的实现
5.1运行环境和操作系统选择
通过分析,后台软件选用Red Hat7.2(Linux 2.4内核)作为开发平台。主要因为:
1. Linux网络功能强大,其本身是依靠网络技术发展的。
2. Linux 2.4内核对libpcap支持的比较好。并且可以得到libpcap的更新版本。
3. 目前的几种主流抓包软件都有支持Linux的版本,便于比较功能。
4. Linux下的软件是开放式源代码产品,便于学习。 本文来自think58 [资料来源:http://think58.com]
5. 基于开放式源代码的特性,系统中不会存在后门,安全性好。由于Window系统的图形开发功能强大,因此选择在Win2000professional上开发前台软件。
5.2系统对软硬件配置的要求
服务器端建议用户的计算机使用以下配置(或更高):
CPU:Intel 或兼容机
硬盘:7200转/分,剩余空间>100M
内存:建议 512MB 或更多
鼠标:3D光电鼠
键盘:标准104键
Microsoft Windows NT Server 4.0、Windows 2000 Server、Microsoft Windows NT Server 企业版、Windows 2000 Advanced Server 及Windows 2000 Data Center Server或者更高软件版本。
客户端推荐配置:
客户端要求不高,IE5.01以上或者兼容版本。
5.3预期成果
本设计预期成果是完成互联网论坛监测的功能并能够实现通过身份验证,实现客户端访问服务器时,可以通过服务器上的监测系统,把客户端的信息捕获到并实现过滤功能。提供本毕业设计开发的软件和毕业设计论文。
5.4软件模块的实现
主控模块:
主进程功能通过主控模块完成,主控模块是系统的初始化进程。
首先它负责解释命令行,它调用了getopt函数,来进行命令行的解析。如果命令行给出的参数不正确,会提示用户一个信息然后退出。如果命令行给出的参数正确,将参数相应的数据放在一个全局的缓冲区内。参数内容即过滤规则供包捕获模块使用。
[资料来源:THINK58.com]
第二点建立socket,主控模块socket的处理主要是完成接收命令模块发送的消息,根据数据包的类型标志位分别处理。
第三处理用户命令。
•启动抓包:初始化抓包线程。
•停止抓包:关闭抓包线程。
•查看当前流量:打开系统中/pros/net/dev文件,从而获得网络接口的流量数据,然后将数据后发送给前台软件进行显示。
•结束主程序:最后等待用户退出消息,结束该系统工作,完成应用退出时的释放资源工作。
包捕获模块:
包捕获模块是通过启动主线程来完成的。主线程启动后首先读取存放关键词的文件,将需要捕获的关键词放在一个全局的缓冲区内。
第二步建立socket,主线程中的socket主要是完成数据包的捕获和匹配后,将信息按照定义的接口发送信息。
第三步根据全局系统缓冲区中存放的命令参数,定义过滤规则,建立过滤器指令链表头,该数据结构详细介绍在后面。过滤规则中包括数据链路层网络传输类型、网络层IP地址范围以及传输层使用的端口号。
第四步调用包捕获模块开始抓包。包捕获模块主要调用Libpcap完成用户层次的数据包截获工作。Libpcap 库所提供的主要功能函数有pcap_open_live(),pcap_read(),pcap_compile(),pcap_setfilter(), pcap_close()。 copyright think58
[资料来源:www.THINK58.com]
这5个接口函数的主要功能如下所述:
1. pcap_ open_live(),用来获得一个数据截获描述符,该描述符用于查看在网络上传输的数据包;
2. pcap_read(),用于读取底层数据缓冲区中的数据包,并对捕获到的数据包用参数所设定的回调函数进行处理;
3. pcap_compile(),用于生成过滤器指令链表;
4. pcap_setfilter(),用于设定过滤器;
5. pcap close(),关闭相关的文件井释放对应资源。
打开数据包截获设备,定义t是指向数据包截获设备描述符结构pcap的全局指针。该函数由查询当前系统可用的数据包截获设备,得到该设各描述符以及设置过滤器规则组成。
结构pcap是实现数据包截获机制的一个关键数据结构。
Struct pcap
{
int fd; 文件描述符,这里指数据包的描述符,即底层过滤器特殊文件描述符
int snapshot; 快照,这里是所指定查看数据包的长度。
int linktype; 底层数据链路层接口类型。
int tzoff; 时区与格林尼治时区的偏移量。
int offset; 对应于不同对齐方式的偏移量。
struct pcap_sf ; 表示数据包转储文件的文件结构。
struct pcap_md ; 表示数据包截获机制状态和相关设备状态的结构。
int bufsize; 数据包缓冲区大小。 think58.com
[版权所有:http://think58.com]
u -char *buffer; 数据包缓冲区的首地址。
u -char *bf; 缓冲区指针。
int cc; 用于计数目的的整数。
u_char *pkt; 用于特定函数目的的地址指针。
struct by program fcode; 为一指向过滤器程序代码的指针。
char errbuf [PCAP_ERRBUF_SIZE];用于存放错误信息字符串的数组。
}; [资料来源:http://think58.com]
think58.com
[资料来源:THINK58.com]
[资料来源:http://www.THINK58.com]