网络流量监控 组长:李天翼 组员: 网络流量监控:主要实现了在局域网中,使用路由器上网,能够把整个局域网的计算机的据包,截获然后转发,根据截获的数据包,来进行流量的监控。进一步能够实现对流量的控制。 在java 程序中要实现数据包截获,转发等操作必须了解一下JPCAP。 JPCAP: 1.Jpcap 类库介绍 1.1 Jpcap 的使用 Jpcap 是2003 年日本开发的一套能够捕获、发送网络数据包的java 类库。因为核心 Java API 不能访问底层的网络数据,但 Jpcap 是一种提供在Window s 或 UNIX 系统上进行这种访问的Java API。Jpcap 不是一种纯粹的Java 解决方案,它依赖本地库的使用。在Window s 或 UNIX 上,你必须有必要的第三方库,分别是WinPcap 或 libpcap。要在java 中使用Jpcap类库需要安装 Jpcap 的运行和开发环境。 1.2 Jpcap 介绍 Jpcap 类库的基本结构如下图: Jpcap 类库结构 1.2.1 Packet基类及其子类 Packet 这个类是所有被捕获的数据包的基类,可以提供被捕获数据包的长度,被捕获数据包的时间标记等基本信息。 ARPPacket 和 IPPacket 是继承 Packet 的子类,它们将被捕获包分成两类。ARPPacketJpcapHandler IPAddress IPv6Option Jpcap JpcapWriter JpcapSender DatalinkPacket EthemetPacket Packet ARPPacket IPPacket ICMPPacket UDPPacket TCPPacket 按照ARP 数据报的内容,将其各数据段的数据取出。IPPacket 则被分得更细。这两个类主要与是与数据链路层密切相关的,其与MAC 地址相关的信息在EthemetPacket 类中表示出来。EthemetPacket 是从DatalinkPacket 继承而来的。 IPPacket 下有三个子类,分别是ICMPPacket、TCPPacket、UDPPacket。这三个类分别表示的是被存储在IP 数据报的报文中发送的ICMP、TCP、UDP 报文。 1.2.2 Jpcap 的主要功能 Jpcap 提供了十分方便的数据包捕获方法。Jpcap 使用一个事件模型来处理包。首先,必须创建一个执行接口 jpcap.JpcapHandler 的类。 public class Jpcaphandler implements JpcapHandler { public void handlePacket(Packet packet){ System.out.println(packet); } } 为 了 捕 获 包 ,需 要让 Jpcap 知 道 要用 哪 个网 络 设 备 来监 听 。API提 供 了jpcap.Jpcap.getDev iceList()方法以满足这一目的。这个方法返回一列字符串,可以按一下方法如下使用它: Strin...