|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Mar 2008
Messaggi: 16
|
[VB.NET] Lettura dati porta 80
Ciao a tutti!
Volevo sapere se era possibile leggere i dati provenienti dalla porta 80 in modo da salvare su un un file tutte le pagine HTML ricevute. Io ho provato a impostare un TcpListener ma non riceveva nulla ![]() Ciao! |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Aug 2007
Messaggi: 21
|
con una libreria come WinPcap puoi catturare tutti i pacchetti inviati/ricevuti dal pc. Filtra la porta 80 e le richieste http e puoi fare quello che ti serve
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Mar 2008
Messaggi: 16
|
Grazie mille, ma non c'è un modo per filtrare i pacchetti tutto in VB.NET?
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quando il tuo computer chiede una pagina WEB normale, la chiede alla porta 80 del server. Ma non e' la porta 80 del client. Avresti dovuto ascoltare la porta 80 sul server per vedere cosa "hai chiesto" al server, e avresti dovuto ascoltare la porta che la tua macchina ha scelto come sorgente, per "ascoltare" la risposta.
Quando il browser chiede una pagina, fa richiesta di una porta di comunicazione al sistema operativo. Gli viene assegnata una porta libera, che sara' la sorgente della comunicazione. Avresti dovuto "ascoltare" su quella porta, e non sulla 80, per sentire la risposta. Ma se ti fossi messo ad ascoltare su quella porta (pur ipotizzando che tu a priori conoscessi quale), quella porta sarebbe risultata occupata, e quindi il sistema operativo non l'avrebbe assegnata al browser come porta di comunicazione. In pratica lavorando con il TCPListener o amici non si puo'. Occorre lavorare ad un livello piu' basso, penso almeno a layer 3, a livello IP. Ovvero prima di conoscere i concetti di TCP, e UDP. Dovresti intercettare tutto il traffico IP della macchina, per poi ricostruire sia TCP e UDP, tenere solo TCP e identificare tra tutti i pacchetti TCP i soli pacchetti HTTP. Tra tutti quelli che arriveranno in ingresso dovrai cercare quelli relativi alla porta che e' stata assegnata al browser per la particolare sessione che ti interessa (e non saprei neppure come fare per azzeccarla) Il consiglio che ti e' stato dato e' valido, usa le WinPCap, che fanno gia' tutto questo per te.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Mar 2008
Messaggi: 16
|
Grazie della dritta!
Sto facendo un paio di tentativi con i socket con protocollo IP, se non riesco userò sicuramente WinPCap. Grazie! ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:20.