Fiddler是即時抓包分析工具,對于測試WEB程序很有意義。Fiddler的魅力之處是提供了功能強大的基于JScript .NET事件腳本子系統,方便用戶二次開發。
將網絡訪問信息以文本文件形式及時存儲到硬盤。網上有現成的代碼記錄請求信息:


由于上述方法存儲的文本文件,不便于檢索操作,更有甚者,如果不對所有訪問記錄進行過濾,則由于文件的打開和關閉過于頻繁而來不及響應而報錯。
最簡單的數據庫是ACCESS,但是“.”、“?”等特殊字符無法存取??煽紤]較為通用的SQLServer數據庫,可以存取URL所包含的特殊字符。
Fiddler采用代理訪問的工作模式,轉發網絡數據包,如果需采集局域網內的計算機通過出口訪問數據,需將主機配置成代理上網服務器。其它配置方式參考《Fiddler調試權威指南+PDF電子書》4.4配置客戶端部分。
在主機上配置SQL Server數據庫服務器。如:設置SQL驗證訪問,用 戶 名 為“fidd”,密碼 為“fiddaccess”。 創建 數 據 庫 capture,表recorder, 字 段 ttime,varchar(50)記錄時間;字段 uurl,varchar(8000) 記錄 Url信 息;字 段hhost,varchar(200)記錄被訪問主 機 名 ;字 段clientip,varchar(20)記錄請求訪問主機IP地址信息;字段rrefere,varchar(2000) 記錄自何頁面連接的主機名。
安 裝 Fiddler,打開Customize Rules.js就 可寫入腳本。如果菜單下沒有Rules->Customize Ruless,根據提示下載Fiddler ScriptEditor后,可 打開Customize Rules.js文件。
Customize Rules.js中包含OnBeforeRequest(oSession:Session) 和OnBeforeResponse(oSessio n: Session)兩大功能函數。本文目標是采集請求訪問的網絡資源,故只需在OnBeforeRequest(oSession:Session)函數的最后部分寫入代碼即可,代碼如下:



保存腳本文件后,運行Filddler。所有通過代理的訪問請求均被捕捉,并且執行上述代碼將需要的信息及時保存到recorder表中。
使用數據庫Express版,連接字符串寫成Server=(local)\SQLExpress,若是服務版直接寫計算機名或IP地址。對數據表Recorder中的記錄進行匯總分析可得到各Http請求訪問的相關信息,可構成簡單、實用的網絡監控、審計、分析研判系統。
借助Customize Rules.js可擴展很多功能。比如只要添加2行代碼可實現防火墻功能:
if (oSession.fullUrl.Contains("**.net"))//需阻止訪問的網站
oSession.oRequest.pipeClient .EndWithRST()。