JNetCap/Pcap4j 带你快速实现java抓包器

JNetCap/Pcap4j 带你快速实现java抓包器

老大说用java搞一个抓包器试试。ok,咔咔那就干:
首先,自己从底层开始写肯定不现实,然后就是一顿搜,了解到了libpcap,libpcap是个啥呢,看一看简介:

Libpcap: 是 unix/linux 平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Libpcap
提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。

Libpcap 在windows系统下有另外一个名字:winpcap,所以在windows下开发的小伙伴是安装winpcap,linux下则是安装libpcap。
记得一定要先安装libpcap/winpcap 哟
(在文章末尾我会甩上连接,里面有涉及到的所有包供大家下载)

顺藤摸瓜,找到了好几款用java完整封装了libpcap的函数库。
比如:JNetCap、Pcap4j、Jpcap。
作为小白的我,选择了从JNetCap下手:

JNetCap

  1. JNetCap地址:https://sourceforge.net/projects/jnetpcap/files/jnetpcap/
    源码也是很近没有更新了,因为网上有朋友说1.4版本有问题,为了求稳先下了1.3版本的。

  2. 解压:
    windows环境: 将jnetpcap.dll 文件放入jre的bin目录下,如C:\Program Files\Java\jre7\bin
    在这里插入图片描述

    Linux环境:将libjnetpcap.so 文件放入你安装的jdk jdk/jre/lib/amd64 目录下
    在这里插入图片描述

  3. 导入jar包。新建一个java项目,将jar到导入到项目中,相信各位应该都知道怎么导吧!

  4. 下面是一个demo:

package com.test;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.jnetpcap.packet.PcapPacket;
import org.jnetpcap.packet.PcapPacketHandler;
import org.jnetpcap.protocol.tcpip.Http;
import org.jnetpcap.protocol.tcpip.Tcp;
import org.jnetpcap.Pcap;
import org.jnetpcap.PcapBpfProgram;
import org.jnetpcap.PcapDLT;
import org.jnetpcap.PcapIf;

public class TestJNetCap {
   

	public static void main(String[] args) {
   
		StringBuilder errbuf = new StringBuilder();
		 
		List<PcapIf> alldevs = new ArrayList<PcapIf>();
 
		int r = Pcap.findAllDevs(alldevs, errbuf);
		if (r == Pcap.NOT_OK || alldevs.isEmpty()) {
   
			System.err.
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值