我想嗅聽/聽取端口80的請求/響應。如何在本地機器上嗅探/偵聽HTTP?
可以用TIdHTTPServer
完成嗎?如果是這樣,那麼怎麼樣?我想我的應用程序在瀏覽器活動(它可以是IE瀏覽器,鉻,FF等...),並獲得所有媒體鏈接(圖像,電影)聽傾聽。像MediaPluck
MediaPluck的「問題」是,您需要在您的網頁瀏覽器配置中更改代理服務器,我認爲這是一個壞主意。
我想嗅聽/聽取端口80的請求/響應。如何在本地機器上嗅探/偵聽HTTP?
可以用TIdHTTPServer
完成嗎?如果是這樣,那麼怎麼樣?我想我的應用程序在瀏覽器活動(它可以是IE瀏覽器,鉻,FF等...),並獲得所有媒體鏈接(圖像,電影)聽傾聽。像MediaPluck
MediaPluck的「問題」是,您需要在您的網頁瀏覽器配置中更改代理服務器,我認爲這是一個壞主意。
無法使用TIdHTTPServer
或TIdHTTPProxyServer
來嗅探HTTP通信,而無需更改連接到它的瀏覽器/客戶端設置。這就是Fiddler所做的 - 暫時改變WinInet的代理設置(IE使用WinInet,所以它透明地改變了這些改動)。你所要求的要求對網絡子系統進行較低級別的嗅探,比如WinPCap/Ethereal的功能。
多年前我曾與IngusSniffer一起工作 - 在Francois Piette的[主頁](http://www.overbyte.be/eng/download.html?url=/arch/isniffer.zip)中找到。但它不適用於現代Windows操作系統。 – ZigiZ 2012-01-14 14:35:31
做您可以編寫使用TIdHTTPServer
代理服務器。但是,如果您在網絡瀏覽器中配置此代理服務器,此「嗅探」將僅適用。
UPDATE
如果你想寫另一提琴手;-)看到這樣的回答: Any resource/codes on how fiddler works?
更新2
根據您的問題的更新,你有兩個選擇。
或者像Remy指出的那樣更改WinInet代理設置。例如,看到這個問題,你只需要將代碼從C++轉換爲Delphi:C++/WinInet Change Proxy Settings Windows 7。
或者編寫windows驅動程序來支持捕獲數據包。但是這對媒體應用程序來說似乎更糟糕。
什麼是「不是真正的問題」呢?我應該刪除它還是什麼? – ZigiZ 2012-01-14 14:18:49
要在HTTP級別「嗅探」您需要代理。如果來自/到端口80的所有通信都通過它傳送,則可以使用透明端口。但要實現它,您需要通過互聯網網關在機器外部執行該操作,或者在計算機上的TCP級別攔截它。像WinPvap這樣的庫將允許它,但是然後你將不得不處理整個HTTP協議來獲取你需要的信息。 – 2012-01-14 14:54:01