基于JPcap的数据包捕获实验报告.doc_第1页
基于JPcap的数据包捕获实验报告.doc_第2页
基于JPcap的数据包捕获实验报告.doc_第3页
基于JPcap的数据包捕获实验报告.doc_第4页
基于JPcap的数据包捕获实验报告.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 验 报 告实验名称基于JPcap的数据包捕获器课程名称计算机网络原理与技术姓名李辉成绩班级软件0806学号3901080608日期2010.4地点电子楼四楼实验室备注:小组合作实验,组员:李辉、黄钰1.实验目的基于java第三方包JPcap编写数据包捕获器,该捕获器具有以下功能:a) 监听并捕获以太网帧b) 分析IP数据报c) 分析ARP/RARPd) 分析TCP、UDP数据报e) 分析ICMP报文f) 分析HTTP报文g) 简单的网络流量分析功能2.实验环境(软件、硬件及条件)1) Jpcap和Wincap简介Jpcap是一个能够捕获、发送网络数据包的java类库包。这个包用到了Libpcap/Winpcap和原始套接字API,目前,Jpcap在FreeBSD 3.x, Linux RedHat 6.1, Solaris, and Microsoft Windows 2000/XP系统上已经做过测试,并且支持Ethernet, IPv4, IPv6, ARP/RARP, TCP, UDP, ICMPv4协议。Jpcap是由在美国加利福尼亚大学Irvine分校(UCI)攻读博士学位的日本人Keita Fujiiy研制发布的,其主页为/kfujii/ 。其最初版本是2000.6发布的Jpcap0.1版,此后几经修改,到2003.4发布了发布Jpcap0.4版。JAVA语言虽然在TCP/UDP传输方面给予了良好的定义,但对于网络层以下的控制,却是无能为力的。JPCAP扩展包弥补了这一点。 JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用wincap/libpcap,给JAVA语言提供一个公共的接口,从而实现了平台无关性,并能够捕获、发送网络数据包。Winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。 2) 编程环境要求i. 安装Java SDK()ii. 安装最新版本的LibPcap(对于UNIX平台,/) 或者WinPcap (对于Windows平台,http:/winpcap.polito.it/)iii. 下载并解压缩Jpcap的最新版本(/kfujii/jpcap/doc/index.html )。iv. 以Window XP系统为例,具体准备工作如下:1. 复制Jpcap.dll到C:WINDOWSsystem322. 安装winpcap4.0.23. 在工程中导入 jpcap.jar3.实验方法Jpcap0.4版本共有1个分析器接口14个分析器类,分别简介如下:1、 接口综述JpcapHandler :这个接口用来定义分析被捕获数据包的方法2、 类综述ARPPacket :这个类描述了ARP/RARP包,继承了Packet类DatalinkPacket :这个抽象类描述了数据链路层EthernetPacket :这个类描述了以太帧包,继承DatalinkPacket类ICMPPacket :这个类描述了ICMP包,继承了IPPacket类IPAddress :这个类描述了IPv4和IPv6地址,其中也包含了将IP地 址转换为域名的方法IPPacket :这个类描述了IP包,继承了Packet类,支持IPv4和IPv6IPv6Option :这个类描述了IPv6选项报头Jpcap :用来捕获数据包Jpcap.JpcapInfo :Jpcap的内部类, 它包含被捕获数据包的信息 (在jpcap0.4修改部分BUG之后不再使用这个类)JpcapSender :它用来发送一个数据包JpcapWriter :它用来将一个被捕获的数据包保存到文件Packet :这个类是所有被捕获的数据包的基类TCPPacket :这个类描述TCP包,继承了IPPacket类UDPPacket :这个类描述了UDP包,继承了IPPacket类具体api帮助文档见附录。4.实验分析以下以抓取ip数据包为例讲解抓包基本步骤:1.绑定网络设备2.抓包3.分析以下代码见Test工程import java.io.IOException;import jpcap.JpcapCaptor;import jpcap.NetworkInterface;import jpcap.packet.IPPacket;import jpcap.packet.Packet;/* * ip数据包捕获演示例子 * author 李辉 * */public class IPPacketTest public static void main(String args) /*-第一步绑定网络设备-*/NetworkInterface devices=JpcapCaptor.getDeviceList(); /返回一个网络设备列表for(NetworkInterface n : devices)System.out.println( + | + n.description );System.out.println(-);JpcapCaptor jpcap=null;int caplen = 1512;boolean promiscCheck = true;/caplen限制每一次收到一个数据包,只提取该数据包中前多少字节/Promisc:设置是否混杂模式。处于混杂模式将接收所有数据包,若之后又调用了包过滤函数setFilter()将不起任何作用/50这个参数主要用于processPacket()方法,指定超时的时间try jpcap=JpcapCaptor.openDevice(devices1,caplen,promiscCheck,50); catch (IOException e) e.printStackTrace();/*-第二步抓包-*/int i = 0;while(i 10)Packet packet = jpcap.getPacket();if(packet instanceof IPPacket & (IPPacket)packet).version=4)i+;IPPacket ip=(IPPacket)packet; /将包强制转为IP包System.out.println(版本:IPv4);System.out.println(优先权: + ip.priority);System.out.println(区分服务:最大的吞吐量: + ip.t_flag);System.out.println(区分服务:最高的可靠性: + ip.r_flag);System.out.println(长度: + ip.length);System.out.println(标识: + ip.ident);System.out.println(DF:Dont Fragment: + ip.dont_frag);System.out.println(MF:More Fragment: + ip.more_frag);System.out.println(片偏移: + ip.offset);System.out.println(生存时间: + ip.hop_limit);String protocol = null;switch(new Integer(tocol)case 1:protocol = ICMP;break;case 2:protocol = IGMP;break;case 6:protocol = TCP;break;case 8:protocol = EGP;break;case 9:protocol = IGP;break;case 17:protocol = UDP;break;case 41:protocol = IPv6;break;case 89:protocol = OSPF;break;default:break;System.out.println(协议: + protocol);System.out.println(源IP: + ip.src_ip.getHostAddress();System.out.println(目的IP: + ip.dst_ip.getHostAddress();System.out.println(源主机名: + ip.src_ip);System.out.println(目的主机名: + ip.dst_ip);System.out.println(-);其他抓包过程类似,已经能够抓取的数据包:详细程序代码见附录PacketCapure工程5.实验结论数据包捕获器界面6.参考资料1. 贵州大学2002级硕士研究生学年报告 基于JPcap的网络流量分析研究与应用李 祥 赵新辉 2. JpcapDumper v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论