Jpcap环境安装配置

1. Jpcap 下载地址    链接地址不可用,问度娘JpcapSetup-0.7.exe,然后下载

2. WinPcap 下载地址    http://www.winpcap.org/install/default.htm

3. Libpcap 下载地址     http://www.tcpdump.org/

4. Jpcap API 参考网址      http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/javadoc/index.html

 

Windows 环境安装配置:

1. 运行 JpcapSetup-0.7.exe (目前最新版本) ,一步步next, 注意最后有个提示,告诉你Jpcap.dll 和 jpcap.jar 的安装位置,一般情况下,Jpcap.dll 安装在 C:\Windows\System32 目录下, jpcap.jar 安装在 C:\Windows\Sun\Java\lib\ext 目录下。

2. 将Jpcap.dll 复制到 jre 路径下的 bin 文件夹下, 将 jpcap.jar 复制到 jre路径下的 lib\ext 文件夹下。

 

Linux 环境下安装配置:

1. 安装jdk(jdk1.6或者更高版本)。
2. 安装libpcap-1.3.0之前系统最好升级到最新,以免有缺失软件包的错误,用到的软件包包括:gcc、flex、make 、bison 。这几个是必须要安装的。
3. 下载libpcap-1.3.0.tar.gz 解压到usr/java/目录中(解压目录按各系统情况自定),解压后进入目录运行命令:
./configure –回车
make –回车
install make –回车
下载地址: http://www.tcpdump.org/#latest-release
4. 安装jpcap 根据系统版本下载相应版本,安装或者解压到自定义的目录中。然后进入到jpcap安装目录src/c中,打开Makefile文件找到:

 $(CC) $(COMPILE_OPTION) -I$(JNI_INCLUDE) 这一行修改为
 $(CC) $(COMPILE_OPTION) -fPIC -I$(JNI_INCLUDE)并保存
然后在src/c目录中输入命令 make –回车,这时会在src/c目录生成libjpcap.so文件,最后把生成的libjpcap.so和jpcap解压目录/lib下的jpcap.jar,复制到你java目录/jre/lib/ext。
下载地址: http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/download.html
注:如果libjpcap.so文件没有生成请检查是否有2中说的软件包没有安装。

 

代码测试:

从网上Copy了一段代码: 

import jpcap.JpcapCaptor;
 import jpcap.NetworkInterface;
 
 public class DispalyNetInterface {
     public static void main(String args[]) {
         try {
             // 获取本机上的网络接口对象数组
             final NetworkInterface[] devices = JpcapCaptor.getDeviceList();
             for (int i = 0; i < devices.length; i++) {
                 NetworkInterface nc = devices[i];
                 // 一块卡上可能有多个地址:
                 String address = "";
                 for (int t = 0; t < nc.addresses.length; t++) {
                     address += "|addresses[" + t + "]: "
                             + nc.addresses[t].address.toString();
                 }
                 // 打印说明:
                 System.out.println("第" + i + "个接口:" + "|name: " + nc.name
                         + "|loopback: " + nc.loopback + "\r\naddress: "
                         + address);
             }
         } catch (Exception ef) {
             ef.printStackTrace();
             System.out.println("显示网络接口数据失败:  " + ef);
         }
     }
 }

刚开始运行是出现以后错误:

  Exception in thread "main" java.lang.UnsatisfiedLinkError: jpcap.JpcapCaptor.getDeviceList()[Ljpcap/NetworkInterface;
    at jpcap.JpcapCaptor.getDeviceList(Native Method)
    at org.manlin.jpcap.DispalyNetInterface.main(DispalyNetInterface.java:11)

最后一翻折腾后,发现是自己最初jre路径下的bin下的jpcap.dll 是从 http://sourceforge.net/projects/jpcap/ 上下载的 jpcap-0.01.16-win32.zip 解压下文件中copy过去的,然后我用 C:\Windows\System32  下的 Jpcap.dll 替换掉,问题就解决了。(希望对出现同样问题的朋友做个参考)

运行成功后输出结果:

  第0个接口:|name: \Device\NPF_{981723CD-87E4-4364-8C4A-467A51880877}|loopback: false
  address: |addresses[0]: /fe80:0:0:0:3c5c:7e90:9c7:5376|addresses[1]: /192.168.100.18


文中参考代码出处:http://javafound.iteye.com/blog/165704



你可能感兴趣的:(Jpcap)