Newsgroup: it.comp.lang.visual-basic
Titolo: monitorare internet

Ciao a tutti,
ho bisogno di un aiuto, utilizzo VB6 è vorrei creare un applicativo che mi
consenta di monitorare il traffico in entrata ed in uscita sulla mia scheda
di rete, dato che ho una serie di computer collegati ad un unico router ed a
una stampante di rete.
Devo riuscire a costruire un applicativo che mi consente di capire quanto
traffico genera una singola macchina in download ed in upload, ma è
importante capire anche dove sono diretti i pacchetti, dato che devo
riuscire a capire se il pacchetto è diretto verso il router (quindi costi di
collegamento), oppure verso la stampante di rete o uno dei computer interni
(traffico interno).
Avevo pensato di utilizzare l'oggetto Winsock, ma non mi pare che abbia
nulla che faccia a caso mio, a meno che non costruisca una specie di mini
Firewall per ciascuna macchina che ponendosi in mezzo a tutte le richieste
mi faccia da filtro e sia in grado di capire dove sono diretti tutti i
pacchetti. Non vorrei fare questo perchè mi rallenterebbe notevolmente il
traffico di rete e comunque il sistema è già protetto da un Firewall.
Spero che qualcuno di voi sappia darmi una dritta o dirmi se esistono OCX o
codici di terze parti che posso utilizzare per questo scopo.
Grazie
Mauro

 wrote in message
news:XKtJ7.113177$sq5.5...@news.infostrada.it...

Se il tuo router ha SNMP attivato, é molto più semplice monitorare
l'interfaccia del router collegata al tuo fornitore internet.
Sei dunque sicuro che tutto il traffico sarà verso o da internet.
Un prodotto come GetIf può darti questo tipo d'informazione. Se vuoi farlo
da VB é un pò più complicato. Io uso la libreria di System Scripting RunTime
(niente Winsock).
Se vuoi sapere quanto traffico ogni utilizzatore genera per il suo surfing,
bé é parecchio più complicato. Bisognerebbe vedere se l'informatione é già
disponibile da qualche parte. Se usi un Proxy, molto probabilmente ci sono
dei logs che potrai interrogare. Dipendentemente dal tuo router, ci possono
essere dei contatori che ti danno i bytes provenienti da o verso un MAC
address.
Sul CD di NT4 (server non workstation) c'é il programma NETMON.EXE che ti
permette di "sniffare" i pacchetti e metterli in un log. Da lì potresti fare
un parsing ma ho i brividi a pensarci. Inoltre se la tua rete é divisa in
VLANs dovresti monitorare in ognuno dei VLAN.
Il fatto é che questo é un campo che si complica abbastanza rapidamente. Uno
dei problemi é che i contatori disponibili sono "ciclici" (nel senso che si
mordono la coda, arrivano fino a un certo numero ~ 2.5 trilioni poi di botto
passano a -2.5 trilioni e rimontano passando da zero), quindi devi fare dei
polls a intervalli regolari, fare la differenza, e incrementare i tuoi
propri contatori.
Questo per conoscere il traffico in bytes (che é un'informazione low level),
per lavorare su dei pacchetti e quindi gestire delle comunicazioni del
livello 3 del modello OSI, si entra un'altra sfera.
Per ricapitolare, il monitoraggio delle informazioni che ti interessano
richiede la conoscenza del protocollo SNMP (Simple Network Management
Protocol). Se posti la marca e modello dei tuoi routers forse potrò aiutarti
un pò di più.
Ciao
Sal

 wrote in message
FswJ7.5817$7T.4...@wagner.videotron.net...


 wrote in message
news:UbBJ7.116636$sq5.5...@news.infostrada.it...


 Network Card?
Non credo che sia ancora chiaro il concetto del modello OSI (una divertente
spiegazione la trovi qui : 
http://www.pe.net/~rlewis/Resources/james.html
 ),
I programmi disponibili per monitorare le tue connessioni modem, ADSL e cosě
via, partono dall'assunto che il computer sia collegato DIRETTAMENTE a
questi ultimi. Dunque, quello che passa sulla tua carta va o viene
dall'internet. Non hai dunque bisogno di analizzare il traffico, bensě solo
conoscerne il volume.
La cosa diventa piů complessa quando entrano in gioco (e non mi riferisco
alla funzione del tuo network ;-)) molteplici sistemi. A quel punto il
network diventa una matrice dove le communicazioni possono avere molte
combinazioni di punti partenza/arrivo.
L'informazione é naturalmente inclusa nei "pacchetti" inviati. Un PACCHETTO
é composto di molti BYTES (1500 circa). Il pacchetto contiene sempre
l'indirizzo MAC della carta di destinazione e di partenza. Se il protocollo
usato é TCP/IP allora ci sara anche l'indirizzo IP, piů altre cosettine. E
in mezzo ci sono i dati (il payload).
I programmi che fanno questa sorta di analisi si chiamano "sniffers" e non
dico che non sia possibile farlo in VB, solo che é un progetto molto
complicato, ecco.
Scusa se ho scritto delle cose che giŕ conoscevi, ma potrebbe essere utile
per qualche altro.
Se hai bisogno di sapere DOVE vanno i tuoi utilizzatori quando passegiano su
internet, oppure CHI va su internet, non hai altra scelta che installare un
proxy.
Se invece vuoi conoscere solo il volume TOTALE del traffico internet, allora
ci sono diversi metodi, alcuni dei quali ne abbiamo giŕ discusso.
Potresti inoltre rimpiazzare il tuo hub con un switch a gestione integrata.
Dando un indirizzo IP allo switch, con il protocollo SNMP puoi conoscere il
traffico su ciascuna delle porte, e dunque quella su cui sarŕ collegato il
router della Telecomm.
Uno switch del genere non é piů tanto caro.
Anyways, in inglese si dice "there is more than one way to skin a cat", che
vuol dire che ci sono sempre diverse soluzioni allo stesso problema. Bisogna
trovare quella che fa di piů al caso tuo.
Sal


per qualche altro.
Ragazzi, continuate cosi': vi sto leggendo come un libro :-)
-- 
ciao, hal

 wrote in message
KnUJ7.7050$UO3.2...@weber.videotron.net...
