正 文

在Java中用Jpcap捕获网络包


www.7dspace.com  更新日期:2006-1-28 8:24:39  七度空间


下面则是全部测试类的代码:

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
...

捕获Java中的包并不是一种完美的Java应用,但是,在可能的情况下,最好还是了解其现有的功能。

2页,页码:[1] [2] 

上一篇:Java 1.5 中新的静态导入特性
下一篇:使用 javap 深入查看类文件
标题:在Java中用Jpcap捕获网络包 作者: 来源:开发者在线
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐