`

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<devices.length;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库来实现网络数据包捕获的技术。jpcap是Java Packet Capture的缩写,是一个开源的网络协议分析库,允许开发者在Java应用程序中进行网络数据包的捕获和处理。在计算机...

    jpcap java抓包必需jar包

    1. **平台无关性**:jpcap利用Java的跨平台特性,通过封装winpcap/libpcap库,使得开发者能够在多种操作系统上进行网络抓包,包括Windows、Linux、Mac OS X等。 2. **丰富的API**:jpcap提供了丰富的Java接口,允许...

    JPCAP网络抓包

    总之,JPCAP为Java开发者提供了一个实用的网络抓包工具,通过它我们可以深入了解网络流量,从而更好地理解和解决网络相关的问题。在实际项目中,结合具体需求,合理利用JPCAP的功能,可以大大提高我们的工作效率和...

    使用Jpcap实现的java网络抓包程序,支持ipv6

    标题中的“使用Jpcap实现的java网络抓包程序,支持ipv6”表明这是一个Java编程项目,其核心功能是利用Jpcap库进行网络封包的捕获和分析,并且该程序具有处理IPv6协议的能力。在现代网络环境中,IPv6的普及逐渐增加,...

    Java抓包工具 jpcap WinPcap

    Java抓包工具jpcap与WinPcap是网络分析和数据包捕获的重要工具,尤其在软件开发、网络故障排查和安全分析等领域中扮演着重要角色。本文将深入探讨这两个工具的功能、安装过程以及如何利用它们进行网络数据包的抓取和...

    JAVA抓包工具jpcap,包含32位和64位

    Java抓包工具jpcap是Java平台上的网络数据包捕获库,它允许开发者在Java应用程序中实现网络监控和分析功能。jpcap提供了一套API接口,使得开发者能够轻松地处理网络数据包,包括捕获、过滤、解析以及网络协议分析等...

    Java语言实现抓包

    总结来说,Java语言实现抓包主要利用Jpcap库,通过编程的方式捕获和解析网络数据包,获取网络通信的各种细节。这个项目不仅涵盖了基本的数据包捕获,还扩展到了流量和速度的监测,提供了一套全面的网络监控解决方案...

    基于Java和jpcap的winpcap抓包分析工具设计源码

    该项目为基于Java语言开发的网络抓包分析工具,核心利用jpcap和winpcap库实现。目前主要支持Windows平台下的抓包功能,用户可指定网卡和进程进行数据捕获。具备包重发功能,并能自动识别包中的所有分包,但重发成功...

    Jpcap 网络抓包实验

    Jpcap(Java Packet Capture)是一个用于Java平台的网络抓包库,它提供了抓取、过滤、分析网络数据包的功能。这个实验基于Jpcap库,虽然制作得较为仓促,但仍然能够实现对网络第四层(传输层)的数据包分析。 首先...

    java下进行抓包使用的jpcap.dll和jpcap.rar资源

    Java中的网络数据包捕获(Packet Capture)是一个关键的技术领域,尤其在网络安全分析、网络监控以及性能测试中...通过正确的配置和编程,你可以利用Jpcap实现各种复杂的网络任务,如故障排查、性能优化和安全检测。

    java抓包程序

    2. **Java实现抓包的基础**:在Java中实现抓包功能主要依赖于第三方库如`jpcap`或`pcap4j`。这些库提供了与操作系统底层网络接口交互的能力,从而能够捕获经过的数据包。 3. **本抓包程序的特点**:本抓包程序是...

    java源码:网络抓包工具 jpcap.zip

    jpcap库的实现基于libpcap,这是一个广泛使用的C语言实现的网络抓包库,因此jpcap可以跨平台运行,包括Windows、Linux、Mac OS X等操作系统。peazip-4.7.2.src可能是项目中包含的一个依赖库或示例代码,PeaZip是一款...

    用JAVA实现的抓包程序

    总的来说,这款用Java实现的抓包程序结合了网络编程、数据库管理和网络协议分析等多个领域的知识,是学习和实践网络技术的好工具。通过它,不仅可以了解网络通信的细节,也可以进行实际的网络监控和故障排查。

    jpcap依赖包及代码

    至于**标签**中的"抓包",是指网络抓包,这是一种技术,通过在数据在网络中传输时对其进行捕获,以供分析和诊断网络问题。jpcap使得开发者可以在不离开Java编程环境的情况下实现这一功能。 "java"标签则表明jpcap是...

    jPcap的ip抓包

    标题"jPcap的ip抓包"揭示了我们今天要讨论的主题是使用jPcap这个库来捕获和分析IP网络数据包。jPcap是一个Java库,它允许开发者在不同平台上进行网络数据包的捕获和发送工作。 描述中提到,JPCAP并不是直接处理数据...

    jpcap 比较完成抓包示例.rar

    本文将深入探讨如何利用Java平台的jpcap库来实现这一功能,并结合SSM(Spring、SpringMVC、MyBatis)框架和前端技术如Highcharts和jQuery,构建一个简单的网络抓包应用。 首先,jpcap是一个开源的Java库,专门用于...

    期末课设-基于Java抓取UDP数据包(jpcap资源需自行安装)

    首先,我们需要安装`jpcap`库,这是一个Java包捕获库,它允许开发者在Java程序中访问网络接口并捕获传输的数据包。由于`jpcap`不包含在标准Java库中,因此你需要自行下载并将其添加到你的项目依赖中。你可以从官方...

    基于java的网络抓包

    实现基于 Java 的网络抓包方法需要安装 WinPcap4.0 和 jpcap6.0,然后下载 Eclipse 和 jigloo 插件,然后编写 Java 抓包程序,建立三个文件,一个主程序,一个抓包程序,一个抓包选项程序对话框程序。 五、Java ...

    JAVA写的网络抓包分析程序

    总的来说,Java写的网络抓包分析程序结合JPCAP库,为我们提供了强大的网络监控工具。通过学习和掌握JPCAP的使用,不仅可以用于教学、研究,还可以在网络安全、性能优化、故障排查等领域发挥重要作用。开发者可以根据...

    基于java的网络抓包方法

    标题中的“基于Java的网络抓包方法”是指利用Java编程语言实现网络数据包的捕获和分析技术。网络抓包,也称为网络嗅探或数据包分析,是网络诊断、性能优化和安全检测的重要手段。它允许我们查看网络上流动的数据,...

Global site tag (gtag.js) - Google Analytics