windows平台-java使用jpcat使用网卡

参考使用Java监听网络流量

  1. Java搭建 winpcap开发环境。
    安装winpcap。
    winpcap官网
    在这里插入图片描述
    在这里插入图片描述

2.设置Jpcap.dll
特别注意:64位的系统要下载64位的对应的DLL; (资源已上传到附件,下载即可)

但是官网上提供的下载是32位系统的!!

下载到本地之后,将Jpcap.dll复制到JDK安装路径下的bin 目录下
在这里插入图片描述

  1. 导入jar包
    使用IDEA新建一个普通的Java项目,导入Jar包

打开项目的项目结构,将刚才下载Jar包添加到项目结构的库中,如下图:
在这里插入图片描述


import jpcap.JpcapCaptor;
import jpcap.NetworkInterface;
import jpcap.NetworkInterfaceAddress;
import jpcap.PacketReceiver;
import jpcap.packet.Packet;
import java.io.IOException;

public class ProtocolEntry implements PacketReceiver {

    public void receivePacket(Packet packet) {
        System.out.println(packet);
        System.out.println("Receive a packet");
    }

    public static void main(String[] args) throws IOException {
        //获取网卡列表
        NetworkInterface[] devices = JpcapCaptor.getDeviceList();
        JpcapCaptor captor = null;
        for (int i = 0; i < devices.length; i++) {
            //显示网卡名字
            System.out.println(i+": "+devices[i].name + "(" + devices[i].description + ")");

            System.out.println(" datalink: " + devices[i].datalink_name + "(" + devices[i].datalink_description + ")");

            System.out.println(" Mac Address: ");
            for (byte b : devices[i].mac_address) {
                System.out.print(Integer.toHexString(b & 0xff) + ":");
            }

            System.out.println();

            for (NetworkInterfaceAddress a : devices[i].addresses) {
                System.out.println(" address:" + a.address + " " + a.subnet + " " + a.broadcast);
            }

            captor = JpcapCaptor.openDevice(devices[i], 65536, false, 20);
            if (captor != null) {
                System.out.println("Open captor on device" + i);
                break;
            }
        }


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值