首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏java面试交流

    java利用Jpcap实现抓包

    Jpcap简介和环境搭建 Jpcap是一个可以监控当前网络情况的中间件,弥补了java对网络层以下的控制, 可以达到抓包的效果。 Jpcap运行需要依赖winCap和Jpcap的dll动态库和Jpcap.jar包。 获取winCap和Jpcap安装包 一 一安装后 jdk–>bin目录会多了一个Jpcap.dll jre–>lib–>ext会多一个Jpcap的jar包 常用类 * JpcapHandler : :用来捕获数据包 * Jpcap.JpcapInfo :Jpcap的内部类, 它包含被捕获数据包的信息(在jpcap0.4修改部分BUG之后不再使用这个类) * JpcapSender :它用来发送一个数据包 ; import jpcap.NetworkInterfaceAddress; import jpcap.PacketReceiver; import jpcap.packet.Packet;

    2.1K31编辑于 2022-09-05
  • 来自专栏Coding迪斯尼

    从0到1用java再造tcpip协议栈:使用jpacap模拟数据链路层

    我们上一节成功使用jpcap获得了网卡硬件,我们要重新构造tcp/ip协议栈,那么就需要做两部分工作。 我们在工程下新建一个文件叫DataLinkLayer.java,其实现内容如下: import jpcap.packet.DatalinkPacket; import jpcap.packet.EthernetPacket ; import jpcap.packet.ICMPPacket; import jpcap.packet.IPPacket; import jpcap.packet.Packet; import jpcap.packet.TCPPacket ; import jpcap.packet.UDPPacket; public class DataLinkLayer implements jpcap.PacketReceiver { String (device, 2000, true, 20); jpcap.loopPacket(-1, (jpcap.PacketReceiver) new DataLinkLayer());

    1.5K30发布于 2018-12-20
  • 来自专栏Coding迪斯尼

    使用java自造TCPIP协议栈:使用JPCAP实现数据发包

    目录下,进入lib目录,然后选择jpcap.jar,接着进入bin目录,选取jpcap.bin,完成后配置如下图: ? 然后进入jpcap目录下的src/main/c目录,如果像我一样使用macos,那么就打开makefil,找到ifeq else部分代码,然后在该部分的末尾添加如下代码: ifeq ($(PLATFORM 然后在java工程下新建一个文件ProtocolEntry.java,然后添加如下代码: import java.io.IOException; import jpcap.JpcapCaptor; import jpcap.NetworkInterface; import jpcap.NetworkInterfaceAddress; import jpcap.packet.Packet; public class 通过jpcap,我们成功访问了网卡硬件,其中”Open captor on device0“,表示我们可以使用名为device0这个网卡来实现数据包的发送和接收,如果你有多块可用网卡,那么这些网卡都可以成功

    2.7K50发布于 2018-12-20
  • 来自专栏Coding迪斯尼

    从0到1用java再造tcpip协议栈:实现ARP协议层

    jpcap.packet.EthernetPacket; import jpcap.packet.Packet; import utils.IMacReceiver; import utils.PacketProvider ; import jpcap.JpcapSender; import jpcap.NetworkInterface; public class DataLinkLayer extends PacketProvider 它通过jpcap获得网卡对象,然后得到本机mac地址和ip地址,同时导出一个接口叫sendData,该接口从上层接收要发送的数据,然后封装一个数据链路层包头后,调用网卡将数据发送出去。 receiver); } package utils; import java.util.ArrayList; import jpcap.PacketReceiver; import jpcap.packet.Packet ; import jpcap.packet.ARPPacket; import jpcap.packet.EthernetPacket; import jpcap.packet.Packet; import

    1.8K30发布于 2018-12-20
  • 来自专栏数据之美

    关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享

    JPCAP 简介:        众所周知,JAVA语言虽然在TCP/UDP传输方面给予了良好的定义,但对于网络层以下的控制,却是无能为力的。JPCAP扩展包弥补了这一点。    JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用wincap/libpcap,而给JAVA语言提供一个公共的接口,从而实现了平台无关性。 在官方网站上声明,JPCAP支持FreeBSD 3.x, Linux RedHat 6.1, Fedora Core 4, Solaris, and Microsoft Windows 2000/XP等系统 JPCAP的整个结构大体上跟wincap/libpcap是很相像的,例如NetworkInterface类对应wincap的typedef struct _ADAPTERADAPTER,getDeviceList 使用 JPCAP 实现监听利用的是所谓的“ARP欺骗”技术。

    2K70发布于 2018-02-24
  • 来自专栏Coding迪斯尼

    从0到1用java再造tcpip协议栈:架构重建,完整实现ping应用

    实现网络协议的模块单独形成一个独立部分,实现具体网络协议的对象都继承统一的接口IProtocol: package protocol; import java.util.HashMap; import jpcap.packet.Packet Application.ApplicationManager; import Application.IApplication; import datalinklayer.DataLinkLayer; import jpcap.PacketReceiver ; import jpcap.packet.EthernetPacket; import jpcap.packet.IPPacket; import jpcap.packet.Packet; public ; import jpcap.packet.EthernetPacket; import jpcap.packet.Packet; public class ICMPProtocolLayer implements java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.HashMap; import java.util.Random; import jpcap.packet.Packet

    80930发布于 2019-03-04
  • 来自专栏Coding迪斯尼

    从0到1用java再造tcpip协议栈:使用责任链模式实现ICMP错误数据报解析

    ICMPProtocolLayer; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; import jpcap.PacketReceiver ; import jpcap.packet.EthernetPacket; import jpcap.packet.Packet; public class ICMPProtocolLayer implements Destination Unreachable错误数据报的处理对象,其代码如下: package ICMPProtocolLayer; import java.nio.ByteBuffer; import jpcap.packet.IPPacket

    92070发布于 2019-01-03
  • 来自专栏Coding迪斯尼

    一个有趣的网络程序TraceRoute:记录数据包传送路径上的路由器IP

    protocol; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.HashMap; import jpcap.packet.Packet limit错误消息的对象,其代码如下: package protocol; import java.nio.ByteBuffer; import java.util.HashMap; import jpcap.packet.Packet

    1.5K20发布于 2019-03-01
  • 来自专栏宜信技术实践

    UAV心跳机制与容器、进程数据采集

    之后对于Windows环境,采用JPcap获取网卡对象,并在网卡上设置tcp过滤器来统计一段时间内的端口流量。 内存、连接数等(top等命令) /proc目录下各进程子目录:包括CPU、内存等信息、磁盘读写等信息 执行脚本:包括Linux环境下的端口流量数据采集 第三方工具包:包括win环境下的端口流量数据采集(JPcap

    1.3K30发布于 2019-06-28
  • 来自专栏Coding迪斯尼

    ICMP timestamp 协议原理和实现

    java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.HashMap; import java.util.Random; import jpcap.packet.Packet

    3.6K10发布于 2019-03-04
  • 来自专栏Coding迪斯尼

    代码实现TCP三次握手:程序实现

    = null) { app.handleData(headerInfo); } } 一旦程序通过JPCap收到TCP包后,它会让上面实现的TCPProtocolLayer

    1.1K30发布于 2019-08-20
领券