`

实战:使用JpcapCaptor实例来捕捉网络数据包

 
阅读更多

当你通过打开网卡设备得到JpcapCaptor实例后,就可以利用它来捕捉网络数据包了。接下来我们使用回调函数机制进行数据包的获取:

 

      首先,你要自定义一个类,该类必顺实现PacketReceiver接口,(在事件处理机制雷同)。PacketReciver接口只声名了receivePacket(Packet packet) 方法,所以你要在你定义的类中实现该方法,方法体里写处理接收到的数据包的代码,得到的数据包为型参packet.

 

     接着,你就可以通过调用JpcapCaptor类的实例的processPacket()或loopPacket()来开始接收数据包。开始接收数据包后,当接收到数据包时就会回调实现PacketReceiver接口的类的receivePacket的方法,使理接收到的数据包。

 

     public int processPacket(int n , PacketRecevier handler);

 

     参数1  类型   int                           解释:一次接收包的个数(个数到时到产生回调)

 

     参数2  类型   PacketRecevier   解释:(回调者)事件临听者

 

     返回值:捕捉到的数据包的个数

 

     功能:捕捉自定义个数的网络数据包。与loopPacket()方法不同,当接收超时(这个由前面的openDevice()方法的最后一个接收超时参数所决定)该方法立即返回。同样的在非阻塞模式下是,没有数据所可接收,该方法也立即返回。

 

     public int loopPacket(int n, PacketRecevier handler):

 

     参数1  类型   int                        解释:一次接收包的个数(个数到时到产生回调)

 

    如下为一个简单的demo:

 

 

 /**

      * @(#)GetPacketDemo.java

     *

     * 演示利用回调机制来捕捉网络数据包

     * @author scholar_ii

     * @version 1.00 2007/12/17     */

import jpcap.*;

import jpcap.packet.*;

public class GetPacketDemo 

{

    public static void main(String [] args) throws Exception 

    {

        NetworkInterface[] devices = JpcapCaptor.getDeviceList();

        int index = 0;

        if(devices.length>1)/*去掉虚拟网卡的处理*/

          index =  1;

         JpcapCaptor captor = JpcapCaptor.openDevice(devices[index], 65535, false, 20);

         captor.loopPacket(-1, new Receiver()); 

    }

}

class Receiver implements  PacketReceiver

{   

    /*实例receivePacket方法*/

   public void receivePacket(Packet packet)

   {

      /*进行简单的处理*/

     System.out.println(packet);

   }

}

    参数2  类型   PacketRecevier   解释:(回调者)事件临听者

 

    返回值:捕捉到的数据包的个数

 

    功能:捉自定义个数的网络数据包。与processPacket()方法不同,该方法忽视超时,不支持工作在非阻塞模式。

 

    注意:在这两个方法的第一个参数中,你可以设定其值为-1。这时你可以停的捕捉数据包,直到捕捉结束,或错误发生为止

 

分享到:
评论

相关推荐

    关于jpcap的API

    6. **数据包分析**:使用jpcap提供的解析器分析数据包头信息和负载内容。 **四、实际应用** jpcap广泛应用于网络安全分析、网络故障排查、性能监测等领域。例如,开发者可以利用jpcap构建网络入侵检测系统,监控...

    Jpcap JpcapCaptor

    总的来说,JpcapCaptor是Jpcap库的一个实际应用实例,主要面向网络监控、数据分析、安全检测等场景。通过这个工具,开发者可以便捷地实现网络数据包的捕获、解析和分析,从而更好地理解和调试网络应用程序。如果你是...

    jpcap监听网络 收发数据包java

    3. **数据包捕获**:使用`JpcapCaptor`对象的`receivePacket()`方法,可以不断接收网络上的数据包。接收到的每个数据包是一个`Packet`对象,包含了数据包的完整信息,如源IP、目标IP、端口号等。 4. **数据包解析**...

    jpcap教程.pdf

    jpcap是一种Java网络嗅探工具库,它提供了一个强大的API来捕捉和处理网络数据包。在这个教程中,我们将学习如何使用jpcap来获取网络接口设备信息和打开网络接口设备。 获取网络接口设备 要捕捉网络数据包,首先...

    JPCAP流量监控

    1. **获取网络接口列表**:使用`JpcapCaptor.getDeviceList()`获取本机网络接口信息,包括名称、描述、IP和MAC地址等。 2. **打开网络接口**:调用`JpcapCaptor.openDevice()`方法,传入选择的`NetworkInterface`...

    基于jpcap的数据包抓取及网页恢复

    1. **打开网络接口**:使用`jpcap.JpcapCaptor.openDevice()`方法,传入设备名称(如“eth0”),设置相应的参数(如缓冲区大小,是否监听混杂模式等),获取`JpcapCaptor`实例。 2. **设置过滤器**:如果需要过滤...

    jpcap-1.0.jar

    4. 设置过滤器:使用`JpcapCaptor.setFilter(String filter)`设置数据包过滤规则。 5. 开始捕获:调用`JpcapCaptor.openDevice()`打开选定的接口,并启动捕获。 6. 处理数据包:注册回调函数处理捕获到的数据包,...

    Jpcap_api jpcap的开发api文档 html版

    - **数据包捕获(Packet Capture)**: 使用`JpcapCaptor`类,开发者可以设置过滤器,捕获特定类型的网络数据包。过滤器可以基于协议、源/目标IP地址、端口等条件。 - **数据包解析(Packet Parsing)**: Jpcap API...

    sendtcp java发送TCP数据包的程序,基于winpcap,Jpcap.zip

    2. **初始化网络接口**:使用`JpcapCaptor.getDeviceList()`获取可用的网络接口列表,然后选择一个合适的接口,通过`JpcapCaptor.openDevice()`打开它。 3. **设置数据包过滤器**:如果需要,可以使用`setFilter()`...

    jpcap例子

    2. **打开网络接口**:使用`JpcapCaptor.openDevice()`方法选择并打开一个网络接口。 3. **设置过滤器**:如果需要特定类型的包(如只关注TCP包),可以设置一个BPF(Berkeley Packet Filter)表达式。 4. **捕获...

    抓取数据包

    2. **绘制图表**:使用 Java 的图表库(如 JFreeChart)来绘制数据包流量的时间变化图。 3. **分析结果**:根据图表分析流量高峰时段,识别潜在的网络问题。 ### 6. 实验原理 #### 知识点概述: 实验原理部分介绍...

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

    2. **打开网络接口**:使用`JpcapCaptor.openDevice()`方法,传入网络接口的名称,打开指定的网络设备。你可以通过`JpcapCaptor.getDeviceList()`获取系统上的所有可用接口。 3. **设置捕获参数**:你可以配置捕获...

    jpcap.jar jpcap.dll

    4. **设置过滤器**:使用`JpcapCaptor.setFilter()`方法设定捕获数据包的过滤规则。 5. **捕获数据包**:调用`JpcapCaptor.loop()`或`JpcapCaptor.getPacket()`方法开始捕获数据包,对捕获到的包进行分析或处理。 6....

    jpcap使用文档及jpcap.jar

    3. **实例教程**: 通过实例代码,演示如何初始化Jpcap,打开网络接口,设置过滤器,捕获、解析和发送数据包。 4. **错误处理与调试**: 提供了处理常见问题和调试技巧,帮助开发者解决遇到的问题。 **三、jpcap包**...

    jpcap 64位

    1. 加载Jpcap库:使用`JpcapCaptor.openDevice()`方法打开指定的网络接口。 2. 设置过滤器:通过`JpcapCaptor.setFilter()`方法设定捕获数据包的过滤规则。 3. 开始捕获:调用`JpcapCaptor.startCapture()`启动...

    网络抓包(JAVA)

    然后,使用`JpcapCaptor.getPacketReceiver()`接收数据包,并通过`JpcapCaptor.dispatch()`或`JpcapCaptor.loop()`方法控制数据包的捕获数量。 2. 数据包处理: 捕获到的数据包是`JpcapPacket`对象,你可以通过其...

    Winpcap、Jpcap使用

    2. 初始化Jpcap对象:使用`JpcapCaptor.getDeviceList()`获取网络接口列表,然后通过`JpcapCaptor.openDevice()`打开指定接口。 3. 捕获数据包:调用`JpcapCaptor.startCapture()`开始捕获,使用`JpcapReceiver`接口...

    基于Jpcap的IP数据包分析

    2. **数据包过滤**:使用BPF(Berkeley Packet Filter)语法,可以设置过滤器来只捕获感兴趣的包。 3. **数据包解析**:`Packet`接口提供了访问数据包各层头部信息的方法,如IP头部和TCP头部。 4. **统计分析**:...

    Jpcap资料与应用

    这些接口包括`NetworkInterface`(表示网络接口)、`Packet`(表示数据包)和`JpcapCaptor`(用于捕获数据包)。通过Jpcap,你可以实现诸如网络监控、数据分析、安全检测等功能。 **课程设计报告** "计算机网络...

    Java jpcap抓包

    Java jpcap抓包是一种利用Java编程语言和jpcap库来实现网络数据包捕获的技术。jpcap是Java Packet Capture的缩写,是一个开源的网络协议分析库,允许开发者在Java应用程序中进行网络数据包的捕获和处理。在计算机...

Global site tag (gtag.js) - Google Analytics