安装配置Jpcap,使用jpcap抓包

原创 2016年05月31日 00:50:17

由于网络课程的原因,要完成使用jpcap抓包的实验,所以学习了一下jpcap的相关包导入配置的问题。写下来免得自己忘记了。

首先得要有java编译环境,也就是jdk什么的,就不赘述了。我这里是用的Eclipse进行这个实验。

其次需要安装Winpcap,Winpcap是windows平台下的一个免费的,公共的网络访问系统(Linux系统是Libpcap),Jpcap就是调用Winpcap给java提供一个公共的接口,从而实现平台无关性,并能够捕获发送数据包。Winpcap在这里下载:Winpcap下载地址

之后我们还需要下载Jpcap,Jpcap包括Jpcap.jar和Jpcap.dll,两者需要版本一致,并且区分32位和64位。将Jpcap.jar导入你的Eclipse项目,并且把Jpcap.dll复制到java的jdk的bin目录下,就ok了。


一切都准备好了之后,我们就可以使用Jpcap编程进行ip数据包的捕获了。


JpcapHandler :这个接口用来定义分析被捕获数据包的方法

ARPPacket :这个类描述了ARP/RARP包,继承了Packet

DatalinkPacket :这个抽象类描述了数据链路层

EthernetPacket :这个类描述了以太帧包,继承DatalinkPacket

ICMPPacket :这个类描述了ICMP包,继承了IPPacket

IPAddress :这个类描述了IPv4IPv6地址,其中也包含了将IP地址转换为域名的方法

IPPacket :这个类描述了IP包,继承了Packet类,支持IPv4IPv6

IPv6Option :这个类描述了IPv6选项报头

Jpcap :用来捕获数据包

Jpcap.JpcapInfo Jpcap的内部类, 它包含被捕获数据包的信息(jpcap0.4修改部分BUG之后不再使用这个类)

JpcapSender :它用来发送一个数据包

JpcapWriter :它用来将一个被捕获的数据包保存到文件

Packet :这个类是所有被捕获的数据包的基类

TCPPacket :这个类描述TCP包,继承了IPPacket

UDPPacket :这个类描述了UDP包,继承了IPPacket


以抓取ip数据包为例,JPCAP抓包基本步骤为:绑定网络设备、抓包、分析。

import java.io.IOException;

import jpcap.*;
import jpcap.packet.IPPacket;
import jpcap.packet.Packet;

public class JpcapPacket {
	
	public static void main(String[] args)
	{
        /*--------------	第一步绑定网络设备       --------------*/ 
		NetworkInterface[] devices = JpcapCaptor.getDeviceList();
		
		for(NetworkInterface n : devices)
		{
			System.out.println(n.name + "     |     " + n.description);
		}
		System.out.println("-------------------------------------------");
		
		JpcapCaptor jpcap = null;
		int caplen = 1512;
		boolean promiscCheck = true;
		
		try{
			jpcap = JpcapCaptor.openDevice(devices[1], 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;//强转
				
				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:Don't Fragment: " + ip.dont_frag);
				System.out.println("NF:Nore Fragment: " + ip.more_frag);
				System.out.println("片偏移:" + ip.offset);
				System.out.println("生存时间:"+ ip.hop_limit);
				
				String protocol ="";
				switch(new Integer(ip.protocol))
				{
				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("----------------------------------------------");
			}
		}
		
		
		
		
	}

}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用JPcap进行抓包

JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用wincap/libpcap,而给JAVA语言提供一个公共的接口,从而实现了平台无关性。在官方网站上声明,JPCAP...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

手把手教你用jpcap抓包

本文原创,转载请注明出处~   在工作中经常需要抓包进行分析,我们可以使用各种工具来抓包,比如常用的tcpdump和wireshark。但有时候我们想用程序来进行控制,比如把抓到的包存储到数据库中...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Jpcap学习笔记0--Jpcap帮助文档

一.JPCAP简介   众所周知,JAVA语言虽然在TCP/UDP传输方面给予了良好的定义,但对于网络层以下的控制,却是无能为力的。JPCAP扩展包弥补了这一点。   JPCAP实际上并非...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

jpcap的配置方法

这几天因为项目原因,要用到jpcap。jpcap本身是很小的东西,但一不小心配置就搞死你。烦了一下午,现在速度记录下来,免得以后悲剧重现。        最基本的配置我就随便说一下,反正这个网上一大...
  • fykhlp
  • fykhlp
  • 2011年01月22日 22:34
  • 14410

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安装配置Jpcap,使用jpcap抓包
举报原因:
原因补充:

(最多只允许输入30个字)