计网实验报告(抓取本地网卡的IP数据包)
任务三计算机网络实验IP数据报捕获与分析

任务三计算机网络实验IP数据报捕获与分析一、实验目的本实验的目的是通过使用网络抓包工具捕获IP数据报,了解IP协议的工作过程,分析数据报的结构和内容。
二、实验设备和工具1.计算机2.网络抓包工具:Wireshark三、实验原理IP(Internet Protocol)是网络层的核心协议,在互联网中承担着数据包的传输任务。
IP协议负责将数据包从源主机传输到目标主机,保证数据在不同主机之间的正确传输。
IP数据报是IP协议传输的基本单位,由IP头和数据部分组成。
IP头部包含以下重要字段:1.版本(4位):表示IP协议的版本号,IPv4为4,IPv6为62.首部长度(4位):表示IP头部的长度,以32位的字节为单位。
3.区分服务(8位):用于标识优先级和服务质量等信息。
4.总长度(16位):指明整个IP数据报的长度。
5.标识(16位):用于标识同一个数据报的分片。
6.标志位(3位):标记是否进行数据报的分片。
7.片偏移(13位):表示数据报组装时的偏移量。
8.生存时间(8位):表示数据报在网络中的存活时间。
9.协议(8位):指明IP数据报中携带的数据部分所使用的协议,如TCP、UDP等。
10.头部校验和(16位):用于对IP头部的校验。
11.源IP地址(32位):指明数据报的发送者的IP地址。
12.目的IP地址(32位):指明数据报的目标IP地址。
四、实验步骤1.安装Wireshark软件。
2.打开Wireshark软件,选择需要进行抓包的网络接口。
3.点击“开始”按钮,开始抓包。
4.进行相关网络操作,产生数据包。
5.停止抓包。
6.选中其中一个数据包,进行分析。
五、数据包分析Wireshark软件可以对捕获到的数据包进行详细的分析,提供了丰富的信息和统计数据。
以下是对数据包的一些常规分析内容:1.源IP地址和目的IP地址:根据协议规定,每个IP数据报必须携带源IP地址和目的IP地址,通过分析这两个字段可以确定数据包的发送方和接收方。
计算机网络课程设计报告-IP数据包的捕获与分析

CENTRAL SOUTH UNIVERSITY计算机网络课程设计报告题目IP数据包的捕获与分析学生姓名廖成班级学号0902130408指导教师穆帅设计时间2015年11月目录第一章绪论 (3)1.1 课题研究背景 (3)1.2 课题研究的意义 (3)第二章课程设计的目的与要求 (3)2.1 课程设计的目的 (3)2.2 课程设计的要求 (4)第三章课程设计的内容 (4)3.1 课程设计的内容 (5)3.2 内容的要求 (5)第四章程序设计与分析 (5)4.1 IP数据包 (5)4.1.1 数据包的格式说明 (5)4.1.2 头部数据结构的定义 (7)4.2 部分程序实现 (7)4.2.1 套接字的使用 (7)4.2.2 数据库的使用 (8)4.2.3 各部分详细实现 (9)4.4 程序流程图 (12)4.4.1 主程序流程图 (12)4.4.2 捕获并分析数据包头部模块流程图 (13)4.4.3 头部信息存数据库模块 (13)第五章实验结果 (14)5.1 程序截图 (14)第六章总结 (16)6.1 实验心得 (16)第七章附录 (17)参考文献 (17)第一章绪论1.1 课题研究背景随着计算机技术的发展,网络的应用迅速普及,网络已日益成为生活中不可或缺的工具。
同时,网络的安全性与可靠性日益受到人们的重视,安全性指的是网络上的信息不被泄露、更改和破坏,可靠性指的是网络系统能够连续、可靠地运行,网络服务不被中断。
网络数据包捕获、监听与分析技术是网络安全维护的一个基础技术同时也是网络入侵的核心手段。
所以研究有关数据包捕获和分析技术对保证网络的健康、安全运行是很有意义的。
1.2课题研究的意义计算机之间进行通信时,交互的所有信息都封装在数据包中。
因此,通过采集网络数据并对其进行相应的分析,可以清楚地了解到进行通信的计算机的通信目的。
通过分析采集到的数据包可以确定网络是否受到入侵;其次也可以通过采集到的数据包来分析应用程序可能出现的问题及原因;此外,通过网络数据的采集和统计可以清楚地了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。
计网实验报告2

实验2
1.(要截图)单击“Capture”菜单中的“Interfaces”,选择正确的网络适配器(俗称网卡)。
这一步很重要。
选错了网卡,可能抓不到任何包。
2.(要截图)单击“Capture”菜单中的“Start”菜单项开始抓包
3.(要截图)打开命令提示符窗口,输入一个ping命令,目的地址是
实验室机器的默认网关。
等到ping命令运行结束后,单击软件中的stop按钮,停止包的抓获;
4.(要截图)在Wireshark的显示过滤器输入栏中输入正确的表达式,再按回车,过滤出目的IP地址为网关地址的Icmp协议报文(共4个)
5.(要截图并附文字说明)单击选中其中一个报文,在树形视图面板中看它各层协议首部的详细信息。
尽最大努力分析该报文各部分含义。
Type:ping请求
Checksum:校验和为Ox4d45
Sequence number:序号为22。
西安邮电大学计算机网络wireshark抓包分析实验报告

西安邮电大学计算机网络wireshark 抓包分析实验报告西安邮电大学《计算机网络技术与应用》课内实验报告书院系名称: 管理工程学院实验题目: Wireshark 抓包工具实验报告学生姓名: 易霜霜专业名称: 信息管理与信息系统班级: 信管1101 学号: 02115021 时间: 2013 年06 月26 日实验报告实验名称Wireshark 抓包工具一、实验目的了解Wireshark 的使用方法,利用wireshark 对数据报进行分析。
二、实验内容用wireshark抓包,然后对数据进行分析,抓UDF和FTP的包。
然后对它们进行分析。
三、设计与实现过程(1) 安装wireshark 软件,并熟悉wireshark 软件的使用。
(2) 完成物理机器的操作系统(host os) 与虚拟机中操作系统(guest os) ,在物理机上设置虚拟网卡,设置host os 和guest os 的IP 地址,分别为192.168.228.1 和192.168.228.2.(3) 在guest os 上配置各种网络服务,包括有:Web、Email 、DNS、FTP。
(4)在host os 上启动wireshark 抓包,从host os 访问guest os 上的各种服务,完成抓包实验。
1. UDP 协议分析由于DNS 委托的是UDP 协议提供传输服务,所以我们以 DNS 查询中的UDP 数据 报为例,分析其首部的封装形式^=DvcfaKi. Oer 认i-IKirrj fert :请㈡.KTiKrTF 呼;叫册冷 戸和 fly&'i iTTpi ifcyt-: plywr 上和翼pr?;诗雷’ MlKFligi purl ;鼻导尸L 曲卑戶PKsvu m : flyXiHuis O^LiBClB pnz 血fl 鞋 iMau : M2SJ- LKllrut pirli. s 存占二归:* 空迂屯 m :辱显*杞摯 Ufflirrdfir sori MyQr:屈LX4 _ MZ14- L~ b "JC :X " . J < : A ; . f -Li ■九 _ K Pl"t E ,-..'! - -"LZ □ '"x .1T■*-■»■•■ jrv ■-■ > 1,■厂 jrr . m I ・ * i l« 尸 *■ * ' F IIL IlfCff! LKI f «■■ ■'・ I +4 b L" I" ■・ll* F ・"■:-P - 3User Datagram Procol(用户数据报协议):首部长度20字节;总长度164字节;协议为UDP 协议,协议号为17;首部校验和:0x07b4;源端口号 Source Port no.56254;目标端口号 Destination Port no.plysrv-https(6771);长度:144字节;数据部分:136字节;在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。
计算机网络抓包实验报告

电子商务应用开发技术实验报告实验报告二课程计算机网络开课实验室日期2013 年 4 月 22 日实验项目学号1040407105利用Wireshark进行抓包分析名称学院经济管理学院指导教师王斌成绩教师评语一:实验目的利用 Wireshark 二:实验内容:教师签名:年月日进行抓包分析,对以前学习过的内容进行进一步的理解和掌握1、安装Wireshark,简单描述安装步骤。
2、打开wireshark,选择接口选项列表。
或单击“Capture”,配置“option”选项。
3、设置完成后,点击“ start”开始抓包,显示结果。
4、选择某一行抓包结果,双击查看此数据包具体结构,并对其进行分析三.实验步骤实验项目学号1040407105利用Wireshark进行抓包分析名称上面的截图是抓取到的包,下面分别针对其中的一个TCP, UDP和 ICMP进行分析1. TCPTCP :Transmission Control Protocol 的、可靠的、基于字节流的运输层(传输控制协议TCP 是一种面向连接(连接导向)Transport layer)通信协议,由IETF 的 RFC 793说明( specified)。
在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。
在因特网协议族(Internet protocol suite)中,TCP层是位于IP 层之上,应用层之下的中间层。
不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP 层不提供这样的流机制,而是提供不可靠的包交换。
应用层向TCP 层发送用于网间传输的、用8 位字节表示的数据流,然后TCP 把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU) 的限制)。
之后 TCP 把结果包传给 IP 层,由它来通过网络将包传送给接收端实体的TCP 层。
TCP 为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。
网络抓包及网络命令实验报告

实验报告题目网络抓包及网络命令实验报告学院专业班级学号学生姓名成绩指导教师完成日期网络工具应用实践实验报告1.实验概要通过使用软件Wireshark抓取网络上的数据包,并作相应分析。
2.实验环境硬件:台式笔记本或Pc、网卡、网络环境。
软件:Windows xp sp3及Windows 7、8。
3.实验目的了解网络抓包的意义,学习并了解使用网络抓包Wiresh 。
对互联网进行数据抓包;了解网络抓包的相关协议。
4.实验要求合理地使用电脑进行数据分析,提高自身对网络的安全意识。
5.实验环境搭建安装Wireshark软件,Wireshark的安装非常简单,只需按照步骤即可。
并且要求电脑具有上网的环境。
6.实验内容及步骤(1)安装Wireshark,简单描述安装步骤。
(2)打开wireshark,选择接口选项列表。
或单击“Capture”,配置“option”选项。
(3)设置完成后,点击“start”开始抓包,显示结果。
(4)选择某一行抓包结果,双击查看此数据包具体结构。
(5)捕捉TCP数据报。
a.写出TCP数据报的格式。
b.捕捉TCP数据报的格式图例。
针对每一个域所代表的含义进行解释。
7.实验过程及结果分析安装Wireshark软件,安装过程如下(如图1-1——1-3):图1-1图1-2图1-3安装完毕。
打开软件,界面如图1-4:图1-4:打开软解截面图选中Start下的以太网,点击Start就可以捕获以太网上的数据包了。
流量如图1-5:图1-5:流量截图选择某一行抓包结果,双击查看数据属性,如图1-6:图1-6:数据属性截图(4)捕捉到的TCP信息如图1-7:图1-8:TPC信息截图由图可知这个TCP信息如下:Host: 来自Professorlee的新浪博客User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0HTTP/1.1 200 OKServer: nginx/1.2.8Date: Thu, 12 Sep 2013 12:37:01 GMTContent-Type: application/x-javascriptLast-Modified: Thu, 12 Sep 2013 09:51:17 GMTTransfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingExpires: Thu, 12 Sep 2013 12:37:31 GMTCache-Control: max-age=30X-debug: 114.80.223.58Content-Encoding: gzip8.网络抓包相关网络协议TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。
网络抓包分析实验报告(IP,icmp)

网络抓包分析实验报告一:实验目的:1. 学习使用网络数据抓包软件Ethereal,对互连网进行数据抓包,巩固对所学知识的理解二:实验内容:1:分析IP,ICMP的报文格式。
三:实验工具Wireshark抓包软件四:实验步骤1、安装Wireshark,简单描述安装步骤。
2、打开wireshark,选择接口选项列表。
或单击“Capture”,配置“option”选项。
3、设置完成后,点击“start”开始抓包,显示结果。
4、选择某一行抓包结果,双击查看此数据包具体结构5、抓ICMP时在开始->运行cmd->tracert 五:分析1:IP报文分析报文格式:截图:分析:由图可知:IP报文版本号是IPV4,首部长度:20 bytes,数据包总长度:58,标示符:0x7335,标志:0x00,比特偏移:0,寿命:112,上层协议:UDP,首部校验和:0x071d,并且是正确的。
源IP地址:61.142.208.196目的IP地址:192.168.1.102二:ICMP报文分析截图如下:ICMP格式有抓包显示截图可知:类型:8 (回显请求)代码/编码:0校验和:0xf2ff(正确的校验和)标示符:0x0300;序列号:512(0x0200)通过这次试验,培养了自己动手的能力,另外,通过对wireshark抓包软件的使用,用其来抓取数据包,对ip, icmp报文的格式有了进一步的了解,通过对报文格式的分析,并且把课本上多学的理论知识与实践结合起来,对以前的知识得到深化和巩固,为以后学习新的知识打下基础,也提高了学习的兴趣,收获很大。
计算机网络数据包的获取与分析实验报告

计算机⽹络数据包的获取与分析实验报告课程设计报告数据包的获取与分析学院:专业班级:学⽣姓名:学号:指导教师:成绩:2011 年 12 ⽉1. 设计任务使⽤抓包软件抓取⽹络传输中的数据包,并对所抓取的数据包进⾏分析,在这⾥我使⽤的抓包软件是“锐捷”,使⽤“锐捷”抓包软件对邮件发送过程中所产⽣的数据包进⾏抓取,并从所抓取的数据包中筛选出邮件发送所产⽣的包,对其进⾏数据分析,包括数据包所属协议、作⽤以及⾸部字段和数据内容(具有相同功能的数据包只分析⼀次)。
并且需要截图做详细说明。
2. 操作步骤⾸先打开“锐捷”抓包软件,匿名登录上该软件。
从IE浏览器中打开163邮箱的登陆界⾯。
从⼀登陆上的界⾯点击开始按钮,开始捕捉⽹络中的数据包。
登陆163邮箱,编辑所要发送的邮件,编辑完成后,点击发送。
发送完成后,关闭邮箱。
查看并分析抓包软件所抓取的数据包。
3. 数据包分析3.1图3.1.1为我的主机的⽹络配置。
图3.1.1 计算机IP配置3.2 捕获到的数据包分析3.2.1 IP数据报的格式IP数据报的格式,在⽹络中要对I数据经⾏封装,在⽹络中要发送⼀个数据要对其进⾏封装。
3.2.1 IP数据包格式还需要地址解析协议ARP,如果主机A要向主机B发送IP数据报是如果⾼速缓存中没有主机B的IP地址,ARP进程在本局域⽹上⼴播发送⼀个ARP请求分组,主机B在ARP请求分组中看的⾃⼰的IP地址,就想主机A发送ARP响应分组,主机A收到主机B的响应分组后,就在ARP⾼速缓存中写⼊主机B的IP地址到MAC地址的映射。
图3.2.2为邮件发送过程中所发送的ARP请求。
3.2.2 ARP会话树3.2.3 ARP协议结构树由图3.2.3可见,该ARP 硬件类型 0001 协议类型 0800 硬件长度 6 协议长度 4 操作码 1 源物理地址8c-89-a5-fb-15 源IP地址10.10.20.102 ⽬标物理地址还未知3.2.2在⽹络层封装层IP数据包在⽹络层封装层IP数据包,数据链路层把⽹络层交下来的IP数据报添加⾸部和尾部封装成帧,并把封装好的帧发送给⽬的主机的数据链路层,对⽅的数据链路层收到的帧⽆差错,则从收到的帧中提取出IP数据报上交给上⾯的⽹络层,否则丢弃这个帧。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计网大型实验报告课程计算机网络原理大型实验姓名汪敏倩班级计科1201 学号201226100117一、实验目的1.1任务一:了解常用网络命令Ping、Tracert/traceroute、Arp、Route的工作原理及使用。
1.2任务二:了解交换机的工作原理,掌握常用交换机的配置和应用以及静态路由的配置。
1.3任务三:抓取本地网卡的IP数据包,并且分析IP数据包的各个部分字段。
二、实验软件2.1任务一:cmd.exe命令解释程序2.2任务二:Packet.Tracer模拟器2.3任务三:Wincap网络抓包器,jnetpcap开源包,eclipes编程器,java语言三、实验步骤或实验原理3.1任务一:3.1.1◆实验原理:1、Ping是Windows下的一个命令在Unix和Linux下也有这个命令。
ping也属于一个通信协议,是TCP/IP协议的一部分。
利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。
它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
使用格式:Ping空格IP地址。
该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。
2、Tracert/traceroute 的用处和PING是差不多的。
但是也有本质的区别。
用ping的时候是不会显示经过的路径的。
但是用tracerert的时候就可以显示经过的路由,并且显示它经过那个路由,花了多少时间,并且每个路由都会测试3次。
它可以让你知道,你的计算机离目的计算机在网络上的距离有多远,经过多久才能到达。
使用格式:Tracert/traceroute空格IP地址。
3、ARP即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存一节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机接收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;使用格式:arp -a或arp –g:用于查看缓存中的所有项目。
arp -a Ip:用于显示与该IP地址指向的接口相关的ARP缓存项目。
arp –s Ip 物理地址:向ARP缓存中人工输入一个静态项目。
arp-d Ip:人工删除一个静态项目。
4、route:主要用于手动配置静态路由。
route print--本命令用于显示路由表中的当前项目,由于用IP地址配置了网卡,因此所有的这些项目都是自动添加的。
route add--使用本命令,可以将新路由项目添加给路由表。
例如,如果要设定一个到目的网络209.98.32.33的路由,其间要经过5个路由器网段,首先要经过本地网络上的一个路由器,其IP为202.96.123.5,子网掩码为255.255.255.224,那么你应该输入以下命令:route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5route change--你可以使用本命令来修改数据的传输路由,不过,你不能使用本命令来改变数据的目的地。
下面这个例子可以将数据的路由改到另一个路由器,它采用一条包含3个网段的更直的路径:route change 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3route delete--使用本命令可以从路由表中删除路由。
例如:route delete209.98.32.333.2任务二:3.2.1◆实验原理:1、交换机的原理:局域网交换机拥有许多端口,每个端口有自己的专用带宽,并且可以连接不同的网段。
交换机各个端口之间的通信是同时的、并行的,这就大大提高了信息吞吐量。
为了进一步提高性能,每个端口还可以只连接一个设备。
传统的交换机本质上是具有流量控制能力的多端口网桥,即传统的(二层)交换机。
把路由技术引入交换机,可以完成网络层路由选择,故称为三层交换,这是交换机的新进展。
交换机(二层交换)的工作原理交换机和网桥一样,是工作在链路层的联网设备,它的各个端口都具有桥接功能,每个端口可以连接一个LAN或一台高性能网站或服务器,能够通过自学习来了解每个端口的设备连接情况。
所有端口由专用处理器进行控制,并经过控制管理总线转发信息。
2、路由器的原理:路由器是一种计算机网路设备,它能将数据包通过一个个网路传送至目的地,这个过程称为路由。
路由工作在OSI模型的第三层(即网路层,例如Internet Protocol(IP)层)。
路由器就是连接两个以上网路线路的设备。
由于位于两个或更多个网路的交汇处,从而可在它们之间传递分组(一种数据的组织形式)。
路由器与交换机(Switch)在概念上有一定重叠但也有不同:交换机泛指工作于任何网路层次的数据中继设备(尽管多指网桥),而路由器则更专注于网路层。
3、虚拟局域网:虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。
4、静态路由:静态路由是指由用户或网络管理员手工配置的路由信息。
当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。
静态路由信息在缺省情况下是私有的,不会传递给其他的路由器。
当然,网管员也可以通过对路由器进行设置使之成为共享的。
静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。
3.2.2◆实验步骤:1、安装Packet.Tracer软件。
2、放一个交换机,然后后面放4个主机。
3、分别给主机配置IP地址。
分别为:172.16.17.1 172.16.17.2 172.16.17.3 172.16.17.44、按顺序接上交换机的E0/1 E0/2 E0/3 E0/4端口5、这个时候你用PC0去pingPC1,PC2,PC3都是通的。
然后接下来我们把PC0和PC2放一个VLAN PC1和PC3放一个VLAN6、在这个时候用PC0去PING 它们3个主机。
只有PC2是通的,因为他们在一个VLAN 当中。
VLAN就是相当于在一个局域网中一样的。
7、放好两个路由器,两个主机,之间用交叉线连接,如图设置,172.16.17.0 和172.16.17.64和172.16.17.128是3个网段8、172.16.17.1和172.16.17.129是主机IP,这里默认网关是指你连接到路由器端口的端口IP。
9、172.16.17.2和172.16.17.130是2个路由器端口IP。
连接2个主机。
配置图如下:10、172.16.17.65和172.16.17.66是两个路由器连接端口的IP,配置如下:11、全部配置好后,我们可以用PC0去pingPC1是不通的。
(你要先在路由器中把左右2个端口打开哦。
!)12、因为没有路由转发条件。
所以接下来就要配置2个路由器的静态路由。
左边路由器:右边路由器:其中在上面的配置其实就一句话,IP route +IP地址+子网掩码+下一跳的端口IP。
不过要先进入配置模式,需要输入config terminal。
3.3任务三:3.3.1◆实验原理:Wincap:Winpcap是一个Win32平台下用于抓包和分析的系统。
包括一个内核级别的packet filter,一个底层的DLL(packet.dll)和一个高级的独立于系统的DLL(Wpcap.dll)。
Jnetpcap:一个基于java的开源包,通过wincap来抓取网卡数据包。
百度上暂无简介,也没有中文教程,只有一个英文版的操作文档。
Java:本人最熟悉的编程语言,简介,易懂强大。
但是java不支持网络抓包,所以需要加载一个jpcap,在网上也有好多关于jpcap的教程,但是它是32位的,电脑是64位,所以用不了;只能用jnetpcap,通过调用wincap来抓取网卡的数据包。
抓取到的一个数据包是囊括好多字段(ip,udp,date等等下面会进行展示),然后截取数据包中的IP字段。
3.3.2◆实验步骤:1、先安装wincap;2、把下载好的jnetpcap中的jnetpcap.jar包拷贝到%JA V A_HOME%\jre\\lib\ext\目录下,然后把jnetpcap.dll拷贝到%JA V A_HOME%\jre\bin\目录下。
3、然后再eclipes中加载这个jar包。
右键项目工程-->propertities-->java build path-->add externals JARS然后导入jnetpcap.jar包就可以了。
4、代码编写。
首先查找电脑中的网络设备,通过pcap.findAllDevs()来实现本机网络设备的筛选。
5、在筛选出的网络设备中选择一个网络设备进行抓包,通过alldevs.get(int)来实现。
6、打开选中的设备,开始抓包。
Snaplen:数据包长度,64*1024表示整个包的长度。
Flags:模式,把选中的网卡设置成混乱状态。
Timeout:表示最大等待时间10S;通过pcap.openlive (name,snaplen,flags,timeout,errbuf)打开选中的设备开始抓包。
7、把抓取到的数据包进行处理,因为我们要抓取的是IP数据包,所以这里定义了IP4的协议。
通过nextPacket(packet,obj)对每个抓取到的包进行处理。
If(packet.hasHeader(ip))来判断抓取到的一个数据包中是否包含IP数据段,如果包括IP数据段,就把IP数据段截取出来存放到JBuffer buf中,然后输出。
如果数据包中没有IP数据段就直接放弃该包,检查下一个包。
8、那有的小伙伴要问了,不是要规定抓包数的吗。
在哪里呢?是的,在jnetpcap中规定数据包抓取数目的在这里。
通过pcap.loop(int,print,name)来规定抓取包的数量。
其中int型的就是抓包数。
完整代码:package com.demo;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import org.jnetpcap.Pcap;import org.jnetpcap.PcapIf;import org.jnetpcap.nio.JBuffer;import org.jnetpcap.packet.PcapPacket;import org.jnetpcap.packet.PcapPacketHandler;import work.Ip4;@SuppressWarnings("deprecation")public class findIp1 {static int sb=0;//设备号static int num=0;//抓包数public static void main(String[] args) {List<PcapIf> alldevs = new ArrayList<PcapIf>();//设备存放StringBuilder errbuf = new StringBuilder(); //错误存放/********************************************* 取得设备列表********************************************/int r = Pcap.findAllDevs(alldevs, errbuf);if (r == Pcap.NOT_OK || alldevs.isEmpty()) {System.err.printf("找不到设备,请重试 %s", errbuf.toString());return;}System.out.println("找到的网络设备如下:");int i = 0;for (PcapIf device : alldevs) {System.out.printf("#%d: %s [%s]\n", i++, device.getName(), device .getDescription());}System.out.println("请输入2个数字,第一个是设备选择,第二个是抓包数:"); Scanner scan=new Scanner(System.in);sb=scan.nextInt();num=scan.nextInt();scan.close();PcapIf device = alldevs.get(sb); // 选择一个设备Sytem.err.printf("\n从改设备上 '%s' 抓取到:\n", device.getDescription());*********************************打开选中的设备***************************************/int snaplen = 64 * 1024; // 捕获整个包int flags = Pcap.MODE_PROMISCUOUS; //设置为混乱状态int timeout = 10 * 1000; //最大超时数Pcap pcap = Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);if (pcap == null) {System.err.printf("打开设备是产生错误: "+ errbuf.toString());return;}PcapPacketHandler<Object> print = new PcapPacketHandler<Object>() {Ip4 ip=new Ip4();int i=0;public void nextPacket(PcapPacket packet, Object obj) {i++;//System.out.println(packet);//if( packet.hasHeader(TC[].ID))if(packet.hasHeader(ip)){// System.out.print(packet);JBuffer buf=ip;System.out.println("第"+i+"个:");System.out.println(buf);System.out.println();}else{System.out.println("第"+i+"个"+"抓取的数据包中不包含IP段,舍弃。