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