Newsgroup: it.comp.programmare.win32
Titolo: ancora sui socket

 (2:332/529)

 comunicazioni preliminari.
Mmmh, non credo che la cosa sia sufficientemente veloce. Anche
ipotizzando che siano sufficienti 100 ms (in pratica il tempo di
latenza) per fare lo scan di un singolo IP, per scannare un network di
classe B servirebbero 0.1*65536 secondi, quasi due ore...
Per fare cose del genere esiste un modo molto piu` semplice: andare in
un sito che ti da` spazio CGI gratis (tipo 
www.virtualave.net
) e
metterci uno scriptino Perl con cui ci si registra online quando ci si
collega.
---
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/

 riguarda il "come farlo", temo di non saperlo. :)
Ci sono vari approcci, ma ad esempio (su 98 e NT4 SP4 e
successivi, almeno) puo` esserci quello basato su Iphlpapi (.LIB
e .H):
-- scopri il numero di interfacce con GetNumberOfInterfaces
-- fai un loop questo numero di volte, chiamando GetIfEntry con
   l'indirizzo di una struct MIB_IFROW dopo avere, a ciascuna
    iterazione, posto il campo dwIndex di quella struttura all'indice
    dell'iterazione corrente
Alternativamente, puoi ottenere l'intera tabella delle strutture
di questo tipo con una singola chiamata a GetIfTable.
Similmente, GetIpNetTable ti permette di ottenere la tabella
delle strutture MIB_IPNETROW che per ciascuna interfaccia
riportano sia l'indirizzo fisico (che trovi anche nelle MIB_IFROW)
sia l'indirizzo IP (e l'indicazione se questo indirizzo IP venga da
un ARP statico o dinamico).
Se dunque il computer che ti interessa ha molteplici adapter,
ti basta scoprire il nome dei tipo di adapter che desideri
identificare (particolari tipi di schede ethernet, o tokenring,
o RAS, o ...) e con queste e simili strutture e tabelle puoi
fare veramente di tutto.
Alex

 classe B servirebbero 0.1*65536 secondi, quasi due ore...
Peccato che con Socket Asincroni o 196 thread la scansione avviene in circa
5 minuti... Per provare scarica il mio programma di Scansione Servizi a
http://pmsoftware.tripod.com/srvscan.zip
 [non contiene comunque i
sorgenti].
Paolo.

 5 minuti...
Con un normale collegamento telefonico?! Per ogni "risposta"
servirebbero quindi 5*60/65536=4.58 ms, durante i quali a 64 kbps si
riescono a trasmettere attorno a 300 bit (che fra l'altro e` meno
dell'MTU minima supportata da WinSock)... anche considerando che il
router del provider te lo lasci fare, e che Windows 9x non esploda, mi
sembrano un po' pochini. Forse ti riferivi a una rete locale?


Hello Lorenzo!
16 Mar 00 21:35, Lorenzo Lutti wrote to All:
 LL> trovare l'IP della connessione a internet dovrai specificare il RAS.
 LL> Per quanto riguarda il "come farlo", temo di non saperlo. :)
Ho provato con uno degli esempi che mi sono stati fatti piu` avanti e ha funzionato abbastanza bene, se mi collego a inet l'IP viene aggiunto alla lista di quelli fissi della rete locale.
 >> sulla porta usata dal mio programma?
 LL> Esistono i cosiddetti "port scanner", che sono programmini che fanno
 LL> proprio questo. Di solito li usano gli "acher" che cercano gente
 LL> infettata col Back Orifice... ;-)
Mah, in questo caso sarebbe un'applicazione "pulita"... ma mi rendo conto che ci possa essere qualche reticenza nel parlare di cose del genere.
