1. Jpcap 下载地址 http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/download.html
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 环境下安装配置:
//留空,暂未亲自实验,以后补齐
代码测试:
从网上Copy了一段代码:
1 import jpcap.JpcapCaptor;
2 import jpcap.NetworkInterface;
3
4 public class DispalyNetInterface {
5 public static void main(String args[]) {
6 try {
7 // 获取本机上的网络接口对象数组
8 final NetworkInterface[] devices = JpcapCaptor.getDeviceList();
9 for (int i = 0; i < devices.length; i++) {
10 NetworkInterface nc = devices[i];
11 // 一块卡上可能有多个地址:
12 String address = "";
13 for (int t = 0; t < nc.addresses.length; t++) {
14 address += "|addresses[" + t + "]: "
15 + nc.addresses[t].address.toString();
16 }
17 // 打印说明:
18 System.out.println("第" + i + "个接口:" + "|name: " + nc.name
19 + "|loopback: " + nc.loopback + "\r\naddress: "
20 + address);
21 }
22 } catch (Exception ef) {
23 ef.printStackTrace();
24 System.out.println("显示网络接口数据失败: " + ef);
25 }
26 }
27 }
刚开始运行是出现以后错误:
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