首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

JpcapHandler——Jpcap抓包处置

2013-12-07 
JpcapHandler——Jpcap抓包处理如果你想捕获Java程序中的网络包,那么你需要一些辅助工具,因为核心Java API不

JpcapHandler——Jpcap抓包处理

如果你想捕获Java程序中的网络包,那么你需要一些辅助工具,因为核心Java API不能访问底层的网络数据。但Jpcap是一种提供在Windows或UNIX系统上进行这种访问的Java API。
Jpcap不是一种纯粹的Java解决方案;它依赖本地库的使用。在Windows 或 UNIX上,你必须有必要的第三方库,分别是WinPcap或libpcap。

Jpcap的工作原理 :
Jpcap使用一个事件模型来让你处理包。首先你必须创建一个执行接口jpcap.JpcapHandler的类。

import jpcap.JpcapHandler; import jpcap.Jpcap; import jpcap.Packet; public class JpcapTip implements JpcapHandler { public void handlePacket(Packet packet){ System.out.println(packet); } public static void main(String[] args) throws java.io.IOException{ String[] devices = Jpcap.getDeviceList(); for (inti = 0; i < devices.length; i++) { System.out.println(devices[i]); } String deviceName = devices[0]; Jpcapjpcap = Jpcap.openDevice(deviceName, 1028, false, 1); jpcap.loopPacket(-1, new JpcapTip()); } } 


为了执行这个类,你必须确保虚拟机可以找到Jpcap的本地库。在Window上,如果jpcap.dll在库地址目录中,Java命令如下:

java -Djava.library.path=lib -cp lib\jpcap.jar;. JpcapTip

执行测试类的输出则如下(出于篇幅考虑进行了缩减):

ARP REQUEST 00:06:5b:01:b2:4d(192.168.15.79)
00:00:00:00:00:00(192.168.15.34)
ARP REQUEST 00:06:5b:01:b2:4d(192.168.15.79)
00:00:00:00:00:00(192.168.15.34)
1052251329:525479 192.168.15.103->255.255.255.255 protocol(17) priority(0)
hop(
offset(0) ident(59244) UDP 1211 1211

热点排行