- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Jpcap使用指南
Jpcap 使用指南
Keita Fujii
原文出自:/kfujii/jpcap/doc/tutorial/index.html
引言
本文描述了如何使用Jpcap开发应用软件。不仅解释了在Jpcap中定义的功能以及类,而且也通过一些程序代码实例对如何使用Jpcap来设计程序进行了全面的阐述。
最新的版本可以在/kfujii/jpcap/doc/tutorial/index.html找到。
Jpcap简介
Jpcap是源自于Java应用的一个开源类库,主要用于捕获、发送网络数据包。它提供以下功能:
捕获末加工的原始数据包。
保存捕获到的数据包到本地文件,从本地文件读出先前捕获的数据包。
自动分辨数据包的类型并产生相应的Java类(如:Ethenet、IPv4、IPv6、ARP/RARP、TCP、UDP和ICMP包)。
根据用户在程序代码中指定的过滤规则过滤数据包。
向网络发送各种数型的数据包
利用Jpcap包能够开发以下几种类型的应用程序:
网络以及协议的分析器
网络监听器
网络流量记录器
网络流量发生器
用户级的网桥、路由
网络入侵检测系统
网络扫描器
网络安全工具箱
Jpcap捕获、发送数据包是独立于主机协议(如:TCP/IP)的,这也就意味着Jpcap不能阻塞、过滤或操纵由宿主机上其他程序产生的网路流量。因此它不支持诸如:流量调节器、QoS schedulers以及个人防火墙这一类应用。
Jpcap使用指南
获取网络接口列表
要想从网络中捕获数据包,第一件必须要做的事就是获取本机的网络接口列表。Jpcap提供了方法JpcapCaptor.getDeviceList()完成这个任务,该方法返回一组NetworkInterface对象。
NetworkInterface接口对象包含了对应网络接口的一些信息,例如:名称、描述、IP以及MAC地址以及数据链路层名称和描述。
例一:获取网络接口列表以及网络接口基本信息
打开网络接口
一旦有了网络接口列表就可以从选定用于捕获数据包的网络接口,可以使用方法JpcapCaptor.openDevice()来打开网络接口。
例二:打开网络接口
调用JpcapCaptor.openDevice()方法必须指定下列参数:
名称 目的
NetworkInterderface 要打开的网络接口。
intrface
int snaplen 一次捕获数据包的最大byte数。
boolean prommics 是否采用混乱模式
混乱模式中,可以捕获所有数据包,即便源MAC或目的MAC地址与打开的网络接口的MAC地址不相同。而非混乱模式中只能捕获由宿主机发送和接收的数据包。
int to_ms 捕获的数据包的超时设置(数量级为毫秒)。
从网络接口捕获数据包
一旦获得了JpcapCaptor实例就可以用来捕获来自网络接口的数据包。使用JpcapCaptor实例来捕获数据包主要有两种方法:回调(callback)以及逐个捕获(one-by-one)。
回调方法
实现的细节:
首先定义一个实现PacketReceiver接口的类。PacketReceiver接口中定义了receivePacket()方法,只需实现receivePacket()这个方法。
例三:实现receivePacket()方法
然后可以使用回调的方法调用JpcapCcessPacket()或JpcapCaptor.loopPacket()方法开始数据包的捕获。processPacket()或loopPacket()方法可以指定捕获的数据包的数量。-1表示无限地捕获数据包。
例四:使用processPacket()捕获数据包
两种回调方法:processPacket()和loopPacket()非常相似。通常建议使用processPacket(),因为它支持超时以及非阻塞模式,而loopPacket()并不支持。
逐个捕获
使用回调方法稍微有点复杂,因为并不知道Jpcap什么时候调用回调方法。如果不使用回调方法,可以调用JpcapCaptor.getPacket()方法来捕获数据包。
getPacket()只是简单返回一个捕获的数据包,可以多次使用getPacket()方法捕获连续的数据包。
例五:逐个捕获数据包
设置捕获过滤器
在Jpcap中可以设置过滤器使得Jpcap不捕获不需要的数据包。例如:如果仅仅只需捕获TCP/IPv4数据包,就可以设置过滤器,其方法如下例所示:
例六:设置过滤器
过滤器表达式“ip and tcp”表示“只保留IPv4并且TCP数据包,并将其交付给应用”。过滤器的设置可以减少所需要处理的数据包并且提高应用的性能。
将捕获的数据包存挡
可以将捕获的数据包写入一
您可能关注的文档
最近下载
- (粤教)花城版六年级音乐上册全册教案.pdf
- 供应商准入管理.doc VIP
- 第二单元+第1课《山水相逢》-2025-2026学年人美版(2024)美术新教材八年级上册.pptx VIP
- 人教版九年级物理第十六章第三节《比热容》说课课件.ppt VIP
- 《客户关系管理》教案 第6课 知晓新技术与客户关系管理.pdf VIP
- 《电饭煲的工作原理》课件.ppt VIP
- 《GB/T 45236-2025化工园区危险品运输车辆停车场建设规范》.pdf
- 2025年秋新教科版三年级上册科学全册精编教案教学设计(新教材).docx
- 人力资源管理实务《人力资源管理》课程标准.docx VIP
- (高清版)B-T 24353-2022 风险管理 指南.pdf VIP
文档评论(0)