Jpcap是一個能夠抓取與發送網絡數據包的Java組件。可以使用Jpcap從一個網絡接口獲取數據包,然后在Java中對它們進行分析和顯示。同樣也可以通過一個網絡接口發送任意數據包。Jpcap當前能夠 捕獲以太網,IPv4,IPv6,ARP/RARP,TCP,UDP和ICMPv4數據包。
Jpcap實際上并非一個真正去實現對數據鏈路層的控制,而是一個中間件,Jpcap調用wincap/libcap,而給Java語言提供一個公共的接口,從而實現了平臺無關性。在官方網站上聲明,Jpcap支持FreeBSD3.x,Linux RedHat6.1,Fedora Core4,Solaris,and Microsoft Windows 2000/XP等系統。
Jpcap的整個結構大體上跟wincap/libpcap是很相像的,例如NetworkInterface類對應wincap的typedef struct_ADAPTER ADAPTER,getDeviceList()對應pcap_findalldevs()等等。
Jpcap主要的類有如下幾個:
1.NetworkInterface
該類的每一個實例代表一個網絡設備,一般就是網卡。這個類只有一些數據成員,除了繼承自java.lang.Object的基本方法以外,沒有定義其它方法。
2.JpcapCaptor
該類提供了一系列靜態方法實現一些基本的功能。該類一個實例代表建立了一個與指定設備的鏈接,可以通過該類的實例來控制設備,例如設定網卡模式、設定過濾關鍵字等等。
3.JpcapSender
該類專門用于控制數據包的發送。
4.Packet
這個是所有其它數據包類的父類。Jpcap所支持的數據包有:
ARPPacket、DatalinkPacket、EthernetPacket、ICMPPacket、IPPacket、TCPPacket、UDPPacket。
執行jpcap.exe后,文件自動保存日志:
Output folder: C:\WINDOWS\Sun\Java\lib\ext
Skipped: jpcap.jar
Extract: C:\WINDOWS\system32\Jpcap.dll... 100%
Output folder: C:\Program Files\Jpcap
Created uninstaller: C:\Program Files\Jpcap\uninst.exe
Completed