Newsgroup: it.comp.lang.visual-basic
Titolo: VB5: leggere dati internet

i dati che provengono dalla rete internet, sia che  vengano ricevuti da un 
modem ethernet su scheda di rete, sia che vengano ricevuti da un modem su 
porta usb.. ad un certo punto in qualche modo verranno letti....
ora la mia domanda č: c' č una routine VB o una API che consenta di leggere, 
byte x byte, tutti questi dati?
in alternativa... conoscete un qualche link dove approfondire l' argomento?
grz


scusate, preciso: non voglio leggere qualche file in particolare, ché allora 
qualche API c'è .... ma TUTTI i bytes che, dal lancio della routine in poi, 
arrivano al pc da internet 

 byte x byte, tutti questi dati?
Se ho ben capito quello che vorresti fare è intercettare in maniera
trasparente tutti i dati che transitano attraverso le varie interfacce di
comunicazione.
Per farlo devi utilizzare un socket raw e impostare su di esso la ricezione
di tutti i pacchetti tramite l'API "wsaioctl", ogni pacchetto ricevuto poi
andrà interpretato leggendone l'intestazione... non è così semplice comunque
(buono studio :-)


buon studio ?????? mi sa che ci sia da diventarci vecchio ;-))
socket, TCP, winsock, client e server.... non mi aspettavo un 2 + 2, ma 
credevo fosse un pochettino + semplice
da quel poco che finora ho capito normalmente il codice di trasmissione si 
riferisce alla creazione di un rapporto client-server tra due Pc ed alla 
trasmissione e ricezione di dati tra di essi...
io vorrei di +, e cioè:
se apro lo stato della connessione internet ( i due monitorini sulla sys 
tray ) posso leggere in tempo reale il numero complessivo di bytes trasmessi 
e ricevuti.... io di quei bytes complessivi in ricezione vorrei arrivare a 
recuperarne il contenuto...
continuo a cercare di capire..... chi vivrà vedrà 

 continuo a cercare di capire..... chi vivrà vedrà
ps:
quello che mi stupisce è che non credo di cercare una cosa assurda, 
irrealizzabile: eppure tra i 10.000.000 di listati VB che si trovano on 
line.. uno che sia uno che si avvicini a quello che mi serve... nisba
that's incredible 

 that's incredible
No, non è incredibile...
Quello che vuoi fare, è in pratica uno sniffer TCP, cosa non del tutto 
banale con in solo VB.
Leggi questo thread:
http://tinyurl.com/d6mbf
Ciao
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca


letto, grazie... anche se non so se è il mio caso specifico...
quello chiede di monitorare una intera  rete di PC e gli si risponde:
***********************
A parte i problemi di performance (la modalità promiscua introduce un
sostanziale carico sulla CPU), se la scheda di rete è connessa ad uno
switch anzichè ad un hub, i pacchetti destinati alle altre schede non
arriveranno mai a quest'ultima, rendendo impossibile catturare i pacchetti
che transitano sull'intera rete.
IMHO, VB non è lo strumento adatto a realizzare software di questo genere,
specialmente quando esistono tool (network monitor) integrati nel sistema.
**********************
a me, però, di quello che succede in rete, lan o internet che sia, non 
interessa NULLA
voglio "SOLO" ( e sottolineo solo perchè a quanto pare tanto banale la cosa 
non è ), "leggere" i pacchetti che entrano man mano nel mio PC via TCP....
come dicevo, il programmino di Windows che visualizza lo stato della 
connessione dice attimo per attimo quanti bytes sono stati ricevuti dalla 
rete... io vorrei anche sapere il loro valore... mi sembra impossibile che 
sia impossibile :-)

 sia impossibile :-)
Come ti dicevo, la cosa non č per niente impossibile, perň non si fa certo
in due click.
Il programmino di windows che visualizza i dati della connessione,
semplicemente va a leggersi le statistiche (si fa con un paio di API) e
niente di piů.
Quello che vuoi fare tu in realtŕ va contro le regole basiche di sicurezza
(non sta bene che un sw intercetti le comunicazioni di un altro), per cui
non esistono delle API belle e pronte che facilitino il compito. L'unico
modo č quello di utilizzare i socket raw (disponibili infatti solo per gli
admin).
Sockets Raw significa socket "grezzi". In pratica un socket raw, se cosě
impostato, puň intercettare tutti i pacchetti che transitano attraverso una
data interfaccia di connessione, perň poi questi pacchetti vanno tradotti a
mano (cosě com'č sono irriconoscibili), devi separere l'intestazione dalla
parte "dati", poi devi leggere
l'intestazione stessa per riuscire ad estrapolarne il protocollo, l'origine
e la destinazione... Inoltre non č detto che i pacchetti arrivino tutti nel
giusto ordine, per cui, se vuoi ricostruire un file (x es) dovrai anche
leggere l'ordine di arrivo dei pacchetti ed eventualmente correggerlo.
Insomma, devi studiarti il TCP/IP o, perlomeno (se ti accontenti di un
semplice log), impararti la struttura dei pacchetti IP + API Winsock.