- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lshark程序设计报告
Lshark程序设计报告
目 录
1 简介 2
2 WpCap开发包介绍 2
2.1.获得网卡列表 2
2.2.网卡捕获 2
2.2.1 打开设备 2
2.2.2 设置过滤 3
2.2.3 捕获数据 3
2.3.得到捕获数据 4
2.4.存储捕获数据 4
3 协议报文介绍和相关数据结构设计 5
3.1 以太帧 5
3.2 ARP报文 6
3.3 Ipv4报文 7
3.4 Ipv6报文 8
3.5 UDP报文 9
3.6 TCP报文 9
4 网络嗅探器的具体实现 11
4.1功能介绍 11
4.2 显示网卡列表 11
4.3 设置过滤 12
4.4 捕获和停止捕获 12
4.5 存储捕获数据 13
4.6 动态过滤捕获数据 13
4.7 分析硬盘文件 13
4.8 数据详细分析 13
4.9 相关程序说明 14
1 实验简介
随着计算机技术的发展,网络应用的普及,网络已成为生活中不可或缺的一部分,同时网络的安全性与可靠性也日益受到人们的广泛重视。网络监听与故障排查技术对于网络安全至关重要,它是网络安全维护的一个基础技术但也是网络入侵的核心手段,它具有重大的研究意义。
目前, 基于Winpcap(Libpcap)的网络数据包的捕获和分析技术发展十分迅速,网络监听工具不断面世,其中最具代表性的是Wireshark和Sniffer。
本实验分析了部分网络协议报文的结构,研究了Winpcap开发包,并引用Winpcap开发包,采用Visual Studio 6.0做为开发环境,用MFC对话框程序开发了一个简易的网络协议分析工具,希望对于研究学习网络协议有益。在开发初期,采用vc6.0英文版作为首要开发环境。鉴于VC6.0和InstallShield对中言文支持不好,后期程序打包迁移至VS2005,由VS2005打包制作成安装文件。
本程序由安徽师范大学数学计算机科学学院08计算机(师范)1班 L 组成员共同完成。程序界面和功能仿WireShark,功能还不完善,且程序运行过程中会出现小小的bug,这些都是今后要改进的地方。由于本组成员姓氏均为李、刘,故本程序取名为Lshark。
2 WpCap开发包介绍
2.1.获得网卡列表
pcap_findalldevs函数用来得到监听主机网卡列表,得到的设备信息存储在一个pcap_if_t类型的指针变量中,其中name属性将作为设备接口参数传递给捕获函数,可以利用以下代码得到网卡列表。
pcap_if_t *alldevs, *d;
char errbuf[PCAP_ERRBUF_SIZE];
if(pcap_findalldevs(alldevs, errbuf)==-1) return;
for(d=alldevs; d; d=d-next)
{
name=d-name;
description=d-description;
}
2.2.网卡捕获
网卡捕获数据包括这几个过程:打开设备,设置过滤条件,捕获数据。
2.2.1 打开设备
使用pcap_open_live函数可以打开网卡设备,该函数需要网卡的name参数,并且网卡设为混杂模式才能接受一切流经网卡的数据帧。pcap_open_live函数的第3个参数设置为1时即完成网卡混杂模式的设置。
pcap_t *adhandle;
char errbuf[PCAP_ERRBUF_SIZE];
if ((adhandle = pcap_open_live(name,65536,1,1000,errbuf)) == NULL)
{
打开设备错误;
}
此外Wpcap还提供一种离线文件的分析机制,即pcap_open_offline函数,它可以打开离线文件并映射到设备adhandle上,针对adhandle也可以做过滤和分析,函数使用方法如下,变量ofilename是文件路径,adhandle对应一个“虚拟设备”。
pcap_t *adhandle;
char *ofilename;
if ((fp = pcap_open_offline(ofilename,errbuf)) == NULL)
{
打开设备错误;
}
2.2.2 设置过滤
过滤条件是通过pcap_compile函数和pcap_setfilter来完成的,前者判断过滤条件语句是否正确,后者设置过滤条件。
u_int netmask;
struct bpf_program fcode;
char *packet_filter; //过滤语句
if (pcap_compile(adhandle, fcode, packet_filter, 1, netmask) 0 )
{
过滤语句出错;
}
if (pcap_setfilter(adhandle, fcode)0)
{
过
您可能关注的文档
最近下载
- 2025年天津市河北区中考数学模拟试卷附答案解析.docx
- 重症监护后综合症必威体育精装版进展和未来方向.docx VIP
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案).pdf VIP
- 学院学术活动意识形态审核表.docx
- 关于学习中国科学家精神的英语作文报道.docx VIP
- IEC 60840-2004 额定电压30kV(Um=36kV)以上至150kV(Um=170kV)挤包绝缘电力电缆及其附件试验方法和要求(中文).pdf VIP
- 建筑行业安装工程造价培训课件.pdf
- 各档口单品菜品毛利率核算表.docx VIP
- 酒店餐饮行业服务员绩效考核表.xlsx
- 基于Springboot+Vue的网盘系统的设计与实现.doc
文档评论(0)