2010-01-17 2 views
5

Voglio scrivere una piccola applicazione in grado di: 1. URL del monitor richiesti tramite un browser web e/o 2. monitorare le risposte HTTP in ingresso sulla macchina localemonitorare il traffico HTTP in entrata/uscita con .net

Ho fatto qualche ricerca su Google, ma non trovo risposte chiare. Sto pensando forse System.Net.Sockets.TCPListener e fare in giro con esso, ma ho l'impressione che è o non è quello che "sto cercando o non riesco a gestire entrambe le cose.

non lo faccio bisogno di una spiegazione dettagliata passo per passo. Solo una piccola panoramica sarebbe utile (se questo è anche possibile) come (quali classi utilizzare, quali eventi sottoscrivere, eventuali dettagli aggiuntivi necessari per istanziare gli oggetti necessari) Posso google i dettagli .

+0

Questo articolo CP aiuto: http://www.codeproject.com/Articles/ 17031/A-Network-Sniffer-in-C – danish

risposta

1

Perché non estendere Fiddler a suit vostre esigenze?

+0

Questo è un overkill –

0

Si consiglia di utilizzare un programma di utilità come Wireshark (grafica, ma non script da C#, per quanto ne so). Wireshar e usa una libreria chiamata WinPcap, che esegue il monitoraggio effettivo dei flussi TCP sul computer. La decodifica delle intestazioni HTTP dovrà essere eseguita nella tua applicazione (questo è ciò che wireshark/tcpdump/windump dovrebbe essere in grado di fare). Sarà necessario utilizzare PInvoke per chiamare la DLL di WinPcap. Puoi trovare i wrapper delle librerie eseguendo una ricerca sul web per "WinPcap PInvoke".

Questa domanda sembra molto simile al seguente:

Is there any way in .NET to programmatically listen to HTTP traffic?

EDIT: Inoltre, Capturing HTTP requests può aiutare