Jpcap使用指南.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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数据包,并将其交付给应用”。过滤器的设置可以减少所需要处理的数据包并且提高应用的性能。 将捕获的数据包存挡 可以将捕获的数据包写入一

文档评论(0)

cuotian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档