- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络流量监控
组长:李天翼
组员:
网络流量监控:主要实现了在局域网中,使用路由器上网,能够把整个局域网的计算机的据
包,截获然后转发,根据截获的数据包,来进行流量的监控。进一步能够实
现对流量的控制。
在java 程序中要实现数据包截获,转发等操作必须了解一下JPCAP 。
JPCAP :
1.Jpcap 类库介绍
1.1 Jpcap 的使用
Jpcap 是2003 年日本开发的一套能够捕获、发送网络数据包的java 类库。因为核心Java
API 不能访问底层的网络数据,但Jpcap 是一种提供在Windows 或UNIX 系统上进行这种访
问的Java API 。Jpcap 不是一种纯粹的Java 解决方案,它依赖本地库的使用。在Windows 或
UNIX 上,你必须有必要的第三方库,分别是 WinPcap 或 libpcap 。要在java 中使用Jpcap
类库需要安装Jpcap 的运行和开发环境。
1.2 Jpcap 介绍
Jpcap 类库的基本结构如下图:
JpcapHandler DatalinkPacket Packet
IPAddress
EthemetPacket ARPPacket IPPacket
IPv6Option
Jpcap
ICMPPacket TCPPacket UDPPacket
JpcapWriter
JpcapSender
Jpcap 类库结构
1.2.1 Packet 基类及其子类
Packet 这个类是所有被捕获的数据包的基类,可以提供被捕获数据包的长度,被捕获数
据包的时间标记等基本信息。
ARPPacket 和 IPPacket 是继承 Packet 的子类,它们将被捕获包分成两类。ARPPacket
按照ARP 数据报的内容,将其各数据段的数据取出。IPPacket 则被分得更细。这两个类主
要与是与数据链路层密切相关的,其与MAC 地址相关的信息在EthemetPacket 类中表示出
来。EthemetPacket 是从DatalinkPacket 继承而来的。
IPPacket 下有三个子类,分别是ICMPPacket 、TCPPacket 、UDPPacket 。这三个类分别
表示的是被存储在IP 数据报的报文中发送的ICMP 、TCP 、UDP 报文。
1.2.2 Jpcap 的主要功能
Jpcap 提供了十分方便的数据包捕获方法。Jpcap 使用一个事件模型来处理包。首先,
必须创建一个执行接口jpcap.JpcapHandler 的类。
public class Jpcap handler implements JpcapHandler {
public void handlePacket(Packet packe t){
System.out.println(packet);
}
}
为了捕获包,需要让 Jpcap 知道要用哪个网络设备来监听。API 提供了
jpcap.Jpcap.getDeviceList() 方法以满足这一目的。这个方法返回一列字符串,可以按一下方
法如下使用它:
String[] devices = Jpcap.getDeviceList();
一旦有了一个设备名称的目录,只要从其中选取一个用来监听:
String deviceName = devices[0];
选择一个设备之后,通过Jpcap.openDevice()方法打开它。openDevice()方法需要四个参数:
即将打开的设备名,从设备上一次读取的最大字节数,说明是否将设备设为混杂模式的
Boolean 值,和以后调用processPacket()方法要使用到的超时值。
Jpcapjpcap = Jpcap.openDevice(deviceName, 102 4, f
您可能关注的文档
- 行为决策中默认效应.pdf
- 企业战略管理考试题目(简答题、论述题、案例分析)摘要.doc
- 第一节 泥沙特性.ppt
- 基坑支护计算书(送审稿件)要领.doc
- 标准橡胶性能测试标准的现状及分析_任绍文.pdf
- 警冲标和信号机位置的求解方法.pdf
- 偏心半球阀总述摘要.pdf
- 化工设计概论31.ppt
- 热动工程力学第11篇.doc
- 数学物理方程Ch34复习资料.pdf
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
文档评论(0)