我是靠谱客的博主 粗心书包,最近开发中收集的这篇文章主要介绍java jpcap 抓包并分析_java利用Jpcap实现抓包,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.准备工作

Jpcap是一个可以监控当前网络情况的中间件,弥补了java对网络层以下的控制,

可以达到抓包的效果。

Jpcap运行需要依赖winCap和Jpcap的dll动态库和Jpcap.jar包。

这个我贴出来两个exe文件,一 一安装后

http://note.youdao.com/noteshare?id=040315a1e04a6146d4f950017f52e83c&sub=FAF884B3EE0E4912AAFA05B56459F87B

http://note.youdao.com/noteshare?id=af8fa2323b41fa8164096cc6a04f85ad&sub=49EEC856E57241E8805A0348A273034B

jdk-->bin目录会多了一个Jpcap.dll

jre-->bin目录会多了一个Jpcap.dll

jre-->lib-->ext会多一个Jpcap的jar包

在eclipse中修改jre的环境

常用类

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

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

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

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

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

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

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

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

Jpcap :用来捕获数据包

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

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

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

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

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

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

常用api

2.1 代码实现

import java.io.IOException;

import java.util.Scanner;

import jpcap.JpcapCaptor;

import jpcap.NetworkInterface;

import jpcap.NetworkInterfaceAddress;

import jpcap.PacketReceiver;

import jpcap.packet.Packet;

/**

* Jpcat实现抓包

* @date 2018年2月7日

*/

public class NetFetcher implements PacketReceiver{

@Override

public void receivePacket(Packet arg0) {

System.out.println(arg0);

}

public static void main(String[] args){

//获得网卡设备列表

NetworkInterface[] devices = JpcapCaptor.getDeviceList();

if(devices.length==0){

System.out.println("无网卡信息!");

return;

}

//输出网卡信息

for(int i=0;i

System.out.println("网卡"+i+"信息:"+devices[i].name);

for(NetworkInterfaceAddress address:devices[i].addresses){

System.out.print(address.address+" ");

}

System.out.println("n");

}

Scanner scan = new Scanner(System.in);

System.out.println("请选择您要监听的网卡序号:");

int index = scan.nextInt();

//监听选中的网卡

try {

JpcapCaptor jpcapCaptor = JpcapCaptor.openDevice(devices[index], 2000, false, 20);

jpcapCaptor.loopPacket(-1, new NetFetcher());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

最后

以上就是粗心书包为你收集整理的java jpcap 抓包并分析_java利用Jpcap实现抓包的全部内容,希望文章能够帮你解决java jpcap 抓包并分析_java利用Jpcap实现抓包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部