AVA語言雖然在TCP/UDP傳輸方面給予了良好的定義,但對于網(wǎng)絡層以下的控制,卻是無能為力的。JPCAP擴展包彌補了這一點,jPcap是一個可以讓java工作在鏈路層的類庫;當然,它底層還是使用了本機API通過Jini調(diào)用,在javaAPI中得到數(shù)據(jù)。JPCAP實際上并非一個真正去實現(xiàn)對數(shù)據(jù)鏈路層的控制,而是一個中間件,JPCAP調(diào)用wincap/libpcap,而給JAVA語言提供一個公共的接口,從而實現(xiàn)了平臺無關性。
Jpcap文件擴展包使用方法
首先,使用Jpcap的幾個小問題:
我們?yōu)槭裁葱枰狫pcap?
什么是Jpcap?Jpcap的工作原理是什么?
怎么配置Jpcap(Jpcap的安裝)?
Jpcap使用步驟
Jpcap有啥特性?
一。我們?yōu)槭裁葱枰狫pcap?
Java的.net包中,給出了傳輸層協(xié)議 TCP和UDP有關的API,用戶只能操作傳輸層數(shù)據(jù),要想直接操作網(wǎng)絡層{比如自己寫傳輸層數(shù)據(jù)報(自己寫傳輸層包頭),或者自己寫好IP數(shù)據(jù)包向網(wǎng)絡中發(fā)}則是無能為力的。 而JPCAP擴展包彌補了這一點,使我們可以支持從網(wǎng)卡中接收IP數(shù)據(jù)包,或者向網(wǎng)卡中發(fā)送IP數(shù)據(jù)包。
二。什么是Jpcap?Jpcap的工作原理是什么?
Jpcap實際上并非一個真正去實現(xiàn)對數(shù)據(jù)鏈路層的控制,而是一個中間件,JPCAP調(diào)用wincap/libpcap,而給JAVA語言提供一個公共的接口,從而實現(xiàn)了平臺無關性。
三。怎么配置Jpcap(Jpcap的安裝)?
Jpcap下載地址: http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/download.html
下載后,直接安裝,安裝,將生成的jar文件和動態(tài)庫 dll 文件分別拷到
%JAVA_HOME%\lib\ext\ 和 %JAVA_HOME%\jre\bin\ 目錄下。
因為Jpcap是調(diào)用的wincap,所以必須將動態(tài)庫放入jre/bin下。 將jar放入ext下,則無需在項目中再加載該jar包
四。Jpcap使用步驟
1.首先,獲得所有網(wǎng)卡列表
NetworkInterface[] devices = JpcapCaptor.getDeviceList();
2.通過網(wǎng)卡,打開一個捕捉器。 //openDevice(NetworkInterface intrface, int snaplen, boolean promics, int to_ms); JpcapCaptor captor=JpcapCaptor.openDevice(device[index], 65535, false, 20);
各個參數(shù)意義:
intrface 需要監(jiān)聽的網(wǎng)卡
snaplen 每次捕獲的數(shù)據(jù)包最大長度(設置為IP包最大長度即可)
promics 是否過濾(Mac地址不是當前網(wǎng)卡的IP數(shù)據(jù)包)
to_ms 超時時間
3.通過捕捉器捕獲數(shù)據(jù):
有兩種方式:
3.1.回調(diào)方法
3.1.1.實現(xiàn)一個方法處理器接口的類PacketReceiver,并將該類的一個對象,注冊到捕獲器中。(回調(diào)方法的實現(xiàn), 其實就是監(jiān)聽器模型)
3.1.2.將消息處理器(PacketReceiver) 注冊到捕獲器(JpcapCaptor)有兩種方式
captor.processPacket(int number,PacketReceiver reciver);//1 loopPacket(int number,PacketReceiver reciver);//2
參數(shù)意義:
第一個參數(shù)為需要捕獲的IP包個數(shù),-1表示一直捕獲。
第二個參數(shù)表示需要注冊的處理器。
processPacket() 和 loopPacket() 的區(qū)別:
Tutorial中給出的說法為:
Usually you might want to use processPacket() because it supports timeout and non_blocking mode, while loopPacket() doesn't.
可是,processPacket() 和 loopPacket() 兩個方法明明都是通過回調(diào)方法實現(xiàn)的,回調(diào)方法使用監(jiān)聽器模型,不就是在某個模塊被調(diào)用的時刻不確定,才使用的嘛?如果是這樣,那么根本就沒有block存在? 此處還請高手指點。
另外,自己做的測試中:使用loopPacket()的時候,會一直有回調(diào),但是使用processPacket()程序直接執(zhí)行完就結(jié)束了,對捕捉器設置了nonblock為flase也沒用?
3.2.主動獲取。
通過捕獲器的getPacket() 可以主動的,一個數(shù)據(jù)包一個數(shù)據(jù)包的獲取。
比較:
主動獲取,可以每次需要處理數(shù)據(jù)包的時候,自己去主動獲取。然后寫出處理邏輯。但是因為不知道何時去產(chǎn)生數(shù)據(jù)包,而一直去調(diào)用getPacket() 的話,無疑效率是很低的。(主動獲取,不管有沒有包,都會一直執(zhí)行循環(huán)去獲。
通過回調(diào)方法,可以在產(chǎn)生需要的數(shù)據(jù)包時,調(diào)用我們的處理邏輯,無疑更優(yōu)美。
五。使用Jpcap能做的事
1.Jpcap是直接抓取經(jīng)過數(shù)據(jù)鏈路層的數(shù)據(jù)包。 因此可以自己寫IP數(shù)據(jù)包直接發(fā)送給數(shù)據(jù)鏈路層。
2.Jpcap會對抓取到的數(shù)據(jù)包進行一定程序的解析,根據(jù)數(shù)據(jù)包內(nèi)容,將數(shù)據(jù)包封裝為對應的對象()。
3.根據(jù)用戶設定的信息,過濾數(shù)據(jù)包(其實就是在解析的時候,對不需要的數(shù)據(jù)直接丟棄,不解析)
4.Jpcap 只是直接從數(shù)據(jù)鏈路層上讀取數(shù)據(jù),并向數(shù)據(jù)鏈路層中發(fā)送數(shù)據(jù),因此,Jpcap并不能操作 其他程序從數(shù)據(jù)鏈路層中讀數(shù)據(jù)或者向網(wǎng)卡中發(fā)送數(shù)據(jù)。(IP層協(xié)議程序)
因此,我們可以使用Jpcap:
1.監(jiān)控網(wǎng)絡內(nèi)容
2.自定義傳輸層乃至網(wǎng)絡層網(wǎng)絡協(xié)議(net包中,我們只能自定義引用此協(xié)議)
正在進行:使用Jpcap,進行ARP欺騙,從而使整個子網(wǎng)的IP包都發(fā)給我,于是,可以監(jiān)控整個局域網(wǎng)。
- PC官方版
- 安卓官方手機版
- IOS官方手機版

















oelove婚戀交友系統(tǒng)v8.1 十周年版
sqltoy-orm框架v4.18.13最新版
flutter聊天源碼開源完整版
最新版抖商精靈源碼4.1暖場升級版
完整版經(jīng)典C#WinForm實例源碼共200個
android5使用poi讀取excel源代碼
香程互贊寶源碼免授權(quán)版
BCM文件轉(zhuǎn)換工具(BCM源碼格式化)2.7.2 簡體中文版
易語言資源網(wǎng)源碼下載工具1.0 中文免費版
縮狗圖床源碼免費版
24個c++游戲源碼完整版
嵌入式圖像處理C語言源碼免費下載
騰訊AI語音合成源碼最新免費版
DSShop單用戶B2C開源PHP商城系統(tǒng)TP框架1.6 最新版
易之源(最好的源碼解析工具)v1.0 免費版
妖氣山視頻管理系統(tǒng)源碼免費下載
魔性機器人網(wǎng)頁代碼免費下載
凈網(wǎng)小助手源碼2.2.1 最新完整版
易語言源碼誤刪恢復器1.0 官方版
微擎微贊一物一碼抽獎模塊源碼最新完整版
微信小程序模板源碼50個實用程序
Android poi 操作doc excel pdf
Amoli私有云4.2.2 2019.08.08 最新版
LaySNS輕社區(qū)系統(tǒng)2.55 最新版
可可網(wǎng)絡驗證系統(tǒng)9.5 官方版
源碼編輯器軟件3.4.13 電腦版
Activiti(開源bpm軟件)6.0.0 官方最新版
悟空crm系統(tǒng)源碼9.0_20191202 官方最新版
帝國網(wǎng)站管理系統(tǒng)7.5.0 官網(wǎng)正式版





Android Studio 源碼2.4 免費下載
浮夢QQ工具箱易語言源碼1.0免費版
易語言電腦開機自動拍照發(fā)指定郵箱源碼5.5
ECSHOP家居網(wǎng)上商城模塊源碼2.7.2免費暢享版
CF狄克改槍源碼免費打包下載
仿騰訊新聞門戶網(wǎng)站管理系統(tǒng)模板源碼v2.0 正
mpycQQ機器人插件源碼2016 最新版
似水年華同學錄破解版2.2 正式版php源碼
UCKeFu客戶支持服務平臺源碼1.2.0 免費下載