Asp.net

如何監控所有傳入的 http 請求?

  • December 13, 2010

我需要通過傳入的 httpPOSTGET來自外部(有時來自機器內部)的請求來監視我的應用程序。

這可能嗎?

一直在使用提琴手,但這只會傳出而不是傳入(來自機器外部)還是我配置不正確?

這適用於我的網路應用程序,該應用程序旨在POST從外部伺服器接收。

伙計們找到了監控從我的機器到我的機器的請求之間本地流動的所有流量的完美方法:

  1. 安裝Wireshark
  2. 當您需要擷取從本地主機流向本地主機的流量時,您將很難使用wireshark,因為它只監控網卡上的傳入流量。這樣做的方法是向視窗添加一條路由,該路由將強制所有流量通過網關,並在網路介面上擷取。

為此,請添加一條路線:<ip address> <gateway>

cmd> route add 192.168.20.30 192.168.20.1
  1. 然後在wireshark上執行擷取(確保選擇有字節流過的介面)然後過濾。

新添加的路線將以黑色顯示。(因為它們是本地地址)

您需要做的是將 Fiddler 配置為“反向代理”

在 Fiddler 的網站上有關於 2 種不同方式的說明。以下是步驟的副本:


步驟#0

在以下任一選項生效之前,您必須使其他電腦能夠連接到 Fiddler。為此,請點擊工具 > Fiddler 選項 > 連接並勾選“允許遠端電腦連接”複選框。然後關閉提琴手。

選項 #1:將 Fiddler 配置為反向代理

可以對 Fiddler 進行配置,以便將發送到的任何流量http://127.0.0.1:8888自動發送到同一台機器上的不同埠。要設置此配置:

  1. 開始註冊
  2. 在 HKCU\SOFTWARE\Microsoft\Fiddler2 中創建一個名為 ReverseProxyForPort 的新 DWORD。
  3. 將 DWORD 設置為您希望將入站流量重新路由到的本地埠(通常是標準 HTTP 伺服器的埠 80)
  4. 重啟提琴手
  5. 瀏覽器導航到http://127.0.0.1:8888

選項 #2:編寫 FiddlerScript 規則

或者,您可以編寫一個做同樣事情的規則。

假設您正在一台名為 WEBSERVER 的機器的 80 埠上執行一個網站。您在無法配置 Web 代理的 Windows 智能手機設備上使用 Internet Explorer 移動版連接到網站。您想要擷取來自電話的流量和伺服器的響應。

  1. 在 WEBSERVER 機器上啟動 Fiddler,在預設埠 8888 上執行。
  2. 點擊工具 | Fiddler 選項,並確保選中“允許遠端客戶端連接”複選框。如果需要,重新啟動。
  3. 選擇規則 | 自定義規則。
  4. 在 OnBeforeRequest 處理程序中,添加一行新程式碼:

if (oSession.host.toLowerCase() == “webserver:8888”) oSession.host = “webserver:80”; 5. 在智能手機上,導航至http://webserver:8888

來自 SmartPhone 的請求將出現在 Fiddler 中。請求從埠 8888 轉發到執行 Web 伺服器的埠 80。響應通過 Fiddler 發送回 SmartPhone,它不知道內容最初來自埠 80。

引用自:https://stackoverflow.com/questions/4428680