嗅探器实验报告

合集下载

sniffer 实验报告

sniffer 实验报告

sniffer 实验报告Sniffer实验报告引言:在当今数字化时代,网络安全问题备受关注。

Sniffer作为一种网络安全工具,被广泛应用于网络流量监测、数据包分析和安全漏洞发现等领域。

本报告旨在介绍Sniffer的原理、应用以及实验结果,并探讨其在网络安全中的重要性。

一、Sniffer的原理与工作方式Sniffer是一种网络数据包嗅探器,它能够截获经过网络的数据包,并对其进行分析和解码。

其工作原理主要包括以下几个步骤:1. 网络接口监听:Sniffer通过监听网络接口,获取经过该接口的数据包。

这可以通过底层网络协议(如以太网、无线网络等)提供的API实现。

2. 数据包截获:一旦Sniffer监听到网络接口上的数据包,它会将其截获并保存在内存或磁盘中,以便后续分析。

3. 数据包解析:Sniffer对截获的数据包进行解析,提取其中的关键信息,如源IP地址、目标IP地址、协议类型、端口号等。

这些信息可以帮助分析人员了解网络流量的来源、目的和内容。

4. 数据包分析:通过对解析得到的数据包进行深入分析,Sniffer可以检测网络中的异常行为、安全漏洞以及潜在的攻击。

二、Sniffer的应用领域Sniffer作为一种功能强大的网络安全工具,在各个领域都有广泛的应用。

以下是几个典型的应用场景:1. 网络管理与监控:Sniffer可以用于监测网络流量,分析网络性能和带宽利用情况。

通过对数据包的分析,可以及时发现网络故障和异常,提高网络管理的效率。

2. 安全漏洞发现:Sniffer可以检测网络中的异常流量和未经授权的访问行为,帮助发现系统的安全漏洞。

它可以捕获潜在的攻击数据包,并通过分析判断是否存在安全威胁。

3. 网络流量分析:Sniffer可以对网络流量进行深入分析,了解用户的行为习惯、访问偏好以及网络应用的使用情况。

这对于网络服务提供商和广告商来说,有助于优化服务和精准投放广告。

4. 数据包调试与故障排查:在网络通信过程中,数据包传输可能会出现错误或丢失。

嗅探器实验报告

嗅探器实验报告

基于JPCAP的网络嗅探器实验报告学号:1106840229姓名:陆凯一、平台和情况简述本实验是用java实现的网络抓包程序。

操作系统环境为windows 7和8 64位。

必要软件为winpcap4.0,jpcapx64,eclipse二、JPCAP简介(以下来自百度百科)众所周知,JAVA语言虽然在TCP/UDP传输方面给予了良好的定义,但对于网络层以下的控制,却是无能为力的。

JPCAP扩展包弥补了这一点。

JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用WINPCAP给JAVA语言提供一个公共的接口,从而实现了平台无关性。

三、程序整体设计从实际操作使用的角度上来讲,整个程序由三个.JAVA文件组成,其中两个文件都可以生成Jframe框架。

也就是说程序只有两个界面,一个主界面和一个选择网卡的Dialog界面。

摘取三个文件中的类和方法:1.MainProgram.java:public class MainProgram extends JFrame implements ActionListener:(1)public static void main(String[] args) 主函数(2)public MainProgram()(3)private void initGUI() 界面设计(4)public void actionPerformed(ActionEvent event) 菜单事件响应(5)public void dealPacket(Packet packet) 包处理(6)public String output(Packet p) 十六进制显示2.Jcapturedialog.javaPublic class Jcapturedialog extends JDialog implements ActionListener:(1)public Jcapturedialog(JFrame frame) 构造(2)public void actionPerformed(ActionEvent evt) 按键响应(3)public static JpcapCaptor getJpcap(JFrame parent)3.Jcaptor.javapublic class Jcaptor:(1)public void setJFrame(MainProgram frame)(2)public void capturePacketsFromDevice() 抓包(3)private void startCaptureThread() 开线程(4)public void stopCapture() 关闭线程从整个的抓包流程来讲,用JPCAP类中的函数(形参已省略)来表达,可以表达为:1.通过JpcapCaptor.getDeviceList()获取网卡列表2.通过jpcap.setFilter()设置过滤器3.通过JpcapCaptor.openDevice()打开相应的网卡4.在线程中采用jpcap.processPacket()来抓包5.通过自己编写的dealPacket()针对抓得的包按照不同的协议来分析并产生表格中的数据四、程序编写过程中的问题解决1.JAVA.SWING的使用(界面编写)因为是网工专业,所以在课程中接触JAVA仅仅是大二一门两个学分的专业选修课,在编写这个嗅探器之前完全不知道如何在JAVA中设计界面以及各个组件的方法。

网络安全与管理实训报告书

网络安全与管理实训报告书

实验一:网络嗅探实验一、实验目的1. 掌握Sniffer(嗅探器)工具的使用方法,实现FTP、HTTP数据包的捕捉。

2. 掌握对捕获数据包的分析方法,了解FTP、HTTP数据包的数据结构和连接过程,了解FTP、HTTP协议明文传输的特性,以建立安全意识。

二、实验原理网络嗅探器Sniffer的原理(1)网卡有几种接收数据帧的状态:unicast(接收目的地址是本级硬件地址的数据帧),Broadcast(接收所有类型为广播报文的数据帧),multicast(接收特定的组播报文),promiscuous(目的硬件地址不检查,全部接收)(2)以太网逻辑上是采用总线拓扑结构,采用广播通信方式,数据传输是依靠帧中的MAC地址来寻找目的主机。

(3)每个网络接口都有一个互不相同的硬件地址(MAC地址),同时,每个网段有一个在此网段中广播数据包的广播地址(4)一个网络接口只响应目的地址是自己硬件地址或者自己所处网段的广播地址的数据帧,丢弃不是发给自己的数据帧。

但网卡工作在混杂模式下,则无论帧中的目标物理地址是什么,主机都将接收(5)通过Sniffer工具,将网络接口设置为“混杂”模式。

可以监听此网络中传输的所有数据帧。

从而可以截获数据帧,进而实现实时分析数据帧的内容。

三、实验环境1. 实验室所有机器安装了Windows操作系统,并组成了一个局域网,并且都安装了SnifferPro软件。

2. 每两个学生为一组:其中学生A进行Http或者Ftp连接,学生B运行SnifferPro 软件监听学生A主机产生的网络数据包。

完成实验后,互换角色重做一遍。

四、实验内容和步骤熟悉SnifferPro工具的使用,并且定义捕捉规则抓取192.168.47.46的数据包文件菜单----选择网络探测器/适配器(N)----显示所有在Windows中配置的适配器(1)命令符提示下输入IPCONFIG查询自己的IP地址。

Host table(主机列表点击图中所示的“Detail”图标,图中显示的是整个网络中的协议分布情况,可清楚地看出哪台机器运行了那些协议。

嗅探器调研报告

嗅探器调研报告

关于嗅探器的调研报告制作人:信息0902班王勤为白石磊目录1、前言(嗅探器又称Sniffer,是一款用于侦听,分析网络中流动数据,是网络故障、性能和安全管理的有力工具......)2、嗅探器原理(嗅探器就是这样一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包......)3、嗅探器的应用(在网络安全的保障与维护方面,面向网络链路运行情况的监测方面,面向网络上应用情况的监测方面,强大的协议解码能力,用于对网络流量的深入解析网络管理、故障报警及恢复......)4、嗅探器工具实用(影音神探:用于嗅探出视频隐约文件的真实地址,只要进入播放网页,就能够获得影片的真实地址,双击的寻找到的URL......)5、嗅探器的危害及发展前景(嗅探器由于其独特侦听的功能,既可以是安全维修人员人员的检测工具,也可以是黑客们用于扩大网络攻击成果的攻击工具.....)一、前言嗅探器又称Sniffer,是一款用于侦听,分析网络中流动数据,是网络故障、性能和安全管理的有力工具。

Sniffer品牌最初诞生自Network General之手,经历了20多年的发展改进,已经成为安全工作人员不可或缺的工具之一。

嗅探器又分为软件类嗅探器和硬件类嗅探器,软件类嗅探器比较著名NetXray、Packetboy、Net Monitor、Sniffer Pro、WireShark、WinNetCap而且软件嗅探器经过专业爱好者不断开发又分为许多针对性极强的种类,如文件嗅探器,影音嗅探器,网页嗅探器等等。

硬件嗅探器相比具有更加强大的功能,目前世界最著名的商用Sniffer生产公司仍然是Network General和Microsoft's Net Monitor。

国内生产嗅探器的公司并不多,比较有名的有宏达科技等。

由于嗅探器硬件设施昂贵的价格和低灵活性,广大安全人员大多偏好于软件类嗅探器。

网络协议嗅探工具实验报告

网络协议嗅探工具实验报告

网络协议分析实验报告实验目的1、熟悉并掌握Ethereal 的基本操作,了解网络协议实体间进行交互以及报文交换的情况。

2、分析HTTP 协议。

3、分析DNS 协议。

实验环境与因特网连接的计算机网络系统;主机操作系统为Windows2000或Windows XP;Ethereal等软件实验内容实验一:利用分组嗅探器(ethereal )分析HTTP 和和DNS实验四:TCP协议分析实验步骤实验一(一)Ethereal 的使用1. 启动主机上的web 浏览器。

2. 启动ethereal。

你会看到如图2 所示的窗口,只是窗口中没有任何分组列表。

3. 开始分组俘获:选择“capture”下拉菜单中的“Start”命令,会出现如图3 所示的“Ethereal: Capture Options”窗口,可以设置分组俘获的选项。

4. 在实验中,可以使用窗口中显示的默认值。

在“Ethereal: Capture Options”窗口的最上面有一个“interface”下拉菜单,其中显示计算机所具有的网络接口(即网卡)。

当计算机具有多个活动网卡时,需要选择其中一个用来发送或接收分组的网络接口(如某个有线接口)。

随后,单击“ok”开始进行分组俘获,所有由选定网卡发送和接收的分组都将被俘获。

5. 开始分组俘获后,会出现如图4 所示的分组俘获统计窗口。

该窗口统计显示各类已俘获分组的数量。

在该窗口中有一个“stop”按钮,可以停止分组的俘获。

但此时你最好不要停止俘获分组。

6. 在运行分组俘获的同时,在浏览器地址栏中输入某网页的URL,如:。

为显示该网页,浏览器需要连接的服务器,并与之交换HTTP 消息,以下载该网页。

包含这些HTTP 报文的以太网帧将被Ethereal俘获。

7. 当完整的页面下载完成后,单击Ethereal 俘获窗口中的stop 按钮,停止分组俘获。

此时,分组俘获窗口关闭。

Ethereal 主窗口显示已俘获的你的计算机与其他网络实体交换的所有协议报文,其中一部分就是与服务器交换的HTTP 报文。

实验1-网络嗅探实验-报告

实验1-网络嗅探实验-报告

1实验名称网络嗅探实验2实验目的掌握网络嗅探工具的使用,捕获FTP数据包并进行分析,捕获HTTP数据包并分析,通过实验了解FTP、HTTP等协议明文传输的特性,以建立安全意识。

3实验内容实验原理网络嗅探器Sniffer的原理:1)Sniffer即网络嗅探器,用于监听网络中的数据包,分析网络性能和故障。

Sniffer 主要用于网络管理和网络维护,系统管理员通过Sniffer可以诊断出通过常规工具难以解决的网络疑难问题,包括计算机之间的异常通信、不同网络协议的通信流量、每个数据包的源地址和目的地址等,它将提供非常详细的信息。

2)网卡有几种接收数据帧的状态:unicast(接收目的地址是本级硬件地址的数据帧),Broadcast(接收所有类型为广播报文的数据帧),multicast(接收特定的组播报文),promiscuous(目的硬件地址不检查,全部接收)3)以太网逻辑上是采用总线拓扑结构,采用广播通信方式,数据传输是依靠帧中的MAC地址来寻找目的主机。

4)每个网络接口都有一个互不相同的硬件地址(MAC地址),同时,每个网段有一个在此网段中广播数据包的广播地址5)一个网络接口只响应目的地址是自己硬件地址或者自己所处网段的广播地址的数据帧,丢弃不是发给自己的数据帧。

但网卡工作在混杂模式下,则无论帧中的目标物理地址是什么,主机都将接收6)通过Sniffer工具,将网络接口设置为“混杂”模式。

可以监听此网络中传输的所有数据帧。

从而可以截获数据帧,进而实现实时分析数据帧的内容。

实验步骤说明和截图1)熟悉Sniffer 工具的使用Sniffer 主界面从文件菜单中选择适配器,标题栏将显示激活的探测器选择适配器文件菜单----选择网络探测器/适配器(N)----显示所有在Windows中配置的适配器菜单与工具栏状态栏网络监控面板Dashboard红色显示统计数据的阀值使用Dashboard作为网络状况快速浏览Host table(主机列表)Detail(协议列表)Matrix (网络连接)2)捕获FTP数据包并进行分析分组角色:学生A进行FTP连接,学生B使用Sniffer监视A的连接。

sniffer实验报告

sniffer实验报告

sniffer实验报告Sniffer实验报告引言:在现代信息技术高度发达的时代,网络安全问题日益突出。

为了保护个人隐私和网络安全,网络管理员和安全专家需要不断寻找新的方法和工具来监测和防止网络攻击。

Sniffer(嗅探器)作为一种常见的网络安全工具,可以帮助我们分析网络流量并检测潜在的威胁。

本实验旨在了解Sniffer的工作原理和应用,并通过实际操作来验证其有效性。

一、Sniffer的工作原理Sniffer是一种网络数据包分析工具,其基本原理是通过监听网络接口,捕获经过该接口的数据包,并对其进行解析和分析。

Sniffer可以在本地网络或互联网上的任何位置运行,以便监测和分析网络流量。

它可以截取各种类型的数据包,包括TCP、UDP、ICMP等,并提取其中的关键信息,如源IP地址、目标IP地址、端口号等。

二、Sniffer的应用场景1. 网络安全监测:Sniffer可以帮助网络管理员及时发现和分析潜在的网络攻击,如端口扫描、DDoS攻击等。

通过监测网络流量,Sniffer可以检测到异常的数据包,并对其进行分析,提供有关攻击者的信息和攻击方式的线索。

2. 网络故障排查:当网络出现故障时,Sniffer可以帮助我们快速定位问题所在。

通过捕获和分析数据包,我们可以了解网络中的通信情况,查找网络设备的故障点,并进行相应的修复。

3. 网络性能优化:Sniffer可以帮助我们监测和分析网络的性能瓶颈,并提供优化建议。

通过分析网络流量和延迟情况,我们可以找到网络中的瓶颈节点,并采取相应的措施来提高网络的性能和稳定性。

三、实验过程和结果为了验证Sniffer的有效性,我们在实验室环境中搭建了一个小型网络,并使用Sniffer来捕获和分析数据包。

实验中,我们使用了Wireshark作为Sniffer工具,并连接了一台电脑和一个路由器。

首先,我们启动Wireshark,并选择要监听的网络接口。

然后,我们开始捕获数据包,并进行一段时间的网络活动,包括浏览网页、发送电子邮件等。

实验1-网络嗅探实验

实验1-网络嗅探实验

实验1-Sniffer网络嗅探实验一、实验目的掌握网络嗅探工具的使用,捕获FTP数据包并进行分析,捕获HTTP数据包并分析,通过实验了解FTP、HTTP等协议明文传输的特性,以建立安全意识。

二、实验原理Sniffer(网络嗅探器),用于坚挺网络中的数据包,分析网络性能和故障。

Sniffer主要用于网络管理和网络维护,系统管理员通过Sniffer可以诊断出通过常规工具难以解决的网络疑难问题,包括计算机之间的异常通信、不同网络协议的通信流量、每个数据包的源地址和目的地址等,它将提供非常详细的信息。

Sniffer是一种常用的收集有用数据方法,这些数据可以是用户的帐号和密码,可以是一些商用机密数据等等。

Snifffer可以作为能够捕获网络报文的设备,ISS为Sniffer这样定义:Sniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。

Sniffer的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。

例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器来作出精确的问题判断。

在合理的网络中,sniffer的存在对系统管理员是致关重要的,系统管理员通过sniffer可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间的异常通讯有些甚至牵涉到各种的协议,借助于sniffer%2C系统管理员可以方便的确定出多少的通讯量属于哪个网络协议、占主要通讯协议的主机是哪一台、大多数通讯目的地是哪台主机、报文发送占用多少时间、或着相互主机的报文传送间隔时间等等,这些信息为管理员判断网络问题、管理网络区域提供了非常宝贵的信息。

嗅探器与一般的键盘捕获程序不同。

键盘捕获程序捕获在终端上输入的键值,而嗅探器则捕获真实的网络报文。

Sniffer程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太同卡)置为杂乱模式状态的工具,一旦同卡设置为这种模式,它就能接收传输在网络上的每一个信息包。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嗅探器实验报告学院:通信工程班级:011252学号:********姓名:***嗅探器设计原理嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。

通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。

而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。

显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。

网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。

通过使用网络嗅探器可以把网卡设置于混杂模式,并可实现对网络上传输的数据包的捕获与分析。

此分析结果可供网络安全分析之用,但如为黑客所利用也可以为其发动进一步的攻击提供有价值的信息。

可见,嗅探器实际是一把双刃剑。

虽然网络嗅探器技术被黑客利用后会对网络安全构成一定的威胁,但嗅探器本身的危害并不是很大,主要是用来为其他黑客软件提供网络情报,真正的攻击主要是由其他黑软来完成的。

而在网络安全方面,网络嗅探手段可以有效地探测在网络上传输的数据包信息,通过对这些信息的分析利用是有助于网络安全维护的。

本程序实现的基本功能:指定局域网内的任一ip地址,能分析包的类型,结构,流量的大小。

嗅探器工作原理根据前面的设计思路,不难写出网络嗅探器的实现代码,下面就结合注释对程序的具体是实现进行讲解,同时为程序流程的清晰起见,去掉了错误检查等保护性代码。

源程序:#include <winsock2.h> /*windows socket的头文件,系统定义的*/#include <windows.h>#include <ws2tcpip.h>#include <stdio.h>#include <stdlib.h>#pragma comment(lib,"ws2_32.lib") /*链接API相关连的Ws2_32.lib静态库*/#define MAX_HOSTNAME_LAN 255#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)#define MAX_ADDR_LEN 16struct ipheader {unsigned char ip_hl:4; /*header length(报头长度)*/unsigned char ip_v:4; /*version(版本)*/unsigned char ip_tos; /*type os service服务类型*/unsigned short int ip_len; /*total length (总长度)*/unsigned short int ip_id; /*identification (标识符)*/unsigned short int ip_off; /*fragment offset field(段移位域)*/unsigned char ip_ttl; /*time to live (生存时间)*/unsigned char ip_p; /*protocol(协议)*/unsigned short int ip_sum; /*checksum(校验和)*/unsigned int ip_src; /*source address(源地址)*/unsigned int ip_dst; /*destination address(目的地址)*/}; /* total ip header length: 20 bytes (=160 bits) */typedef struct tcpheader {unsigned short int sport; /*source port (源端口号)*/unsigned short int dport; /*destination port(目的端口号)*/unsigned int th_seq; /*sequence number(包的序列号)*/unsigned int th_ack; /*acknowledgement number(确认应答号)*/ unsigned char th_x:4; /*unused(未使用)*/unsigned char th_off:4; /*data offset(数据偏移量)*/unsigned char Flags; /*标志全*/unsigned short int th_win; /*windows(窗口)*/unsigned short int th_sum; /*checksum(校验和)*/unsigned short int th_urp; /*urgent pointer(紧急指针)*/}TCP_HDR;typedef struct udphdr {unsigned short sport; /*source port(源端口号)*/unsigned short dport; /*destination port(目的端口号)*/unsigned short len; /*udp length(udp长度)*/unsigned short cksum; /*udp checksum(udp校验和)*/}UDP_HDR;void main(){SOCKET sock;WSADATA wsd;DWORD dwBytesRet;unsigned int optval = 1;unsigned char *dataudp,*datatcp;int i,pCount=0,lentcp, lenudp;SOCKADDR_IN sa,saSource, saDest;struct hostent FAR * pHostent;char FAR name[MAX_HOSTNAME_LAN];char szSourceIP[MAX_ADDR_LEN], szDestIP[MAX_ADDR_LEN],RecvBuf[65535] = {0};struct udphdr *pUdpheader;struct ipheader *pIpheader;struct tcpheader *pTcpheader;WSAStartup(MAKEWORD(2,1),&wsd);if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP))==SOCKET_ERROR) exit(1);gethostname(name, MAX_HOSTNAME_LAN);pHostent = gethostbyname(name);sa.sin_family = AF_INET;sa.sin_port = htons(6000);memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);bind(sock, (SOCKADDR *)&sa, sizeof(sa));/*bind()设定自己主机的IP地址和端口号*/if ((WSAGetLastError())==10013) exit(1);WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);pIpheader = (struct ipheader *)RecvBuf;pTcpheader = (struct tcpheader *)(RecvBuf+ sizeof(struct ipheader ));pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader ));while (1){memset(RecvBuf, 0, sizeof(RecvBuf));recv(sock, RecvBuf, sizeof(RecvBuf), 0);saSource.sin_addr.s_addr = pIpheader->ip_src;strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);saDest.sin_addr.s_addr = pIpheader->ip_dst;strncpy(szDestIP, inet_ntoa(saDest.sin_addr), MAX_ADDR_LEN);lentcp =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct tcpheader)));lenudp =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr)));if((pIpheader->ip_p)==IPPROTO_TCP&&lentcp!=0){printf("*******************************************\n");pCount++;datatcp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct tcpheader);printf("-TCP-\n");printf("\n目的IP地址:%s\n",szDestIP);printf("\n目的端口:%i\n",ntohs(pTcpheader->dport));printf("datatcp address->%x\n",datatcp);printf("size of ipheader->%i\n",sizeof(struct ipheader));printf("size of tcpheader->%i\n",sizeof(struct tcpheader));printf("size of the hole packet->%i\n",ntohs(pIpheader->ip_len));printf("\nchar Packet%i [%i]=\"",pCount,lentcp-1);for (i=0;i<lentcp;i++){printf("\\x%.2x",*(datatcp+i));if (i%10==0) printf("\"\n\"");}printf("\";\n\n\n");for (i=0;i<lentcp;i++){if( *(datatcp+i)<=127&&*(datatcp+i)>=20)printf("%c",*(datatcp+i));elseprintf(".");}printf("\n\n*******************************************\n");}if((pIpheader->ip_p)==IPPROTO_UDP&&lentcp!=0){pCount++;dataudp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr);printf("-UDP-\n");printf("\n目的IP地址:%s\n",szDestIP);printf("\n目的端口:%d\n",ntohs(pTcpheader->dport));printf("UDP数据地址:%x\n",dataudp);printf("IP头部长度:%i\n",sizeof(struct ipheader));printf("UDP头部长度:%i\n",sizeof(struct udphdr));printf("包的大小:%i\n",ntohs(pIpheader->ip_len));printf("\nchar Packet%i [%i]=\"",pCount,lenudp-1);for (i=0;i<lenudp;i++){printf("\\x%.2x",*(dataudp+i));if (i%10==0)printf("\"\n\"");}printf("\";\n\n\n");for (i=0;i<lenudp;i++){if( *(dataudp+i)<=127&&*(dataudp+i)>=20)printf("%c",*(dataudp+i));elseprintf(".");}printf("\n\n*******************************************\n");}}}运行结果截图:实验总结1.实验中的遇到的问题:刚开始老师布置作业的时候完全不知道怎么做,在网上找了一些资料和借鉴同学的实验过程才完成了这个实验,着实不易。

相关文档
最新文档