Go Down

Topic: Lista indirizzi IP dei PC connessi in LAN con C# (Read 1 time) previous topic - next topic

Nik_90

Salve, avrei necessità di sapere se esiste in c# un modo per avere la lista degli indirizzi IP dei PC connessi in una rete locale. Il form del avrà una combobox che verrà popolata in base agli indirizzi IP locali connessi in quel momento alla rete locale?

Es:

192.168.1.10
192.168.1.23
192.168.1.55
..

Da qui poi.. se sarebbe possibile avere il nome PC della macchina connessa!

Grazie mille!

lucadentella

ciao

non esiste una funzione, devi implementare uno scanner di rete, ad es. pingando tutti gli indirizzi IP che fanno parte del tuo segmento di rete (nel caso di una rete 192.168.1.0 con mask 255.255.255.0 sono gli indirizzi 192.168.1.1-192.168.1.254)
http://msdn.microsoft.com/it-it/library/system.net.networkinformation.ping.aspx

per la risoluzione del nome, dipende molto... se hai un DNS server (difficile in una LAN domestica) potresti usare quello, altrimenti dovresti vedere se riesci via netbios:
http://technet.microsoft.com/es-es/library/cc758517%28WS.10%29.aspx

nota: entrambi i metodi hanno dei limiti, il primo se il dispositivo in rete non risponde al PING, il secondo se non risponde alle query netbios in broadcast (es. non è un dispositivo Windows based)
lucadentella.it

Nik_90

mmm capito.. un'alternativa potrebbe essere utilizzare tool esterni tipo nmap.exe? Non so perchè girando l'ho appena scoperto..

BrainBooster

io tempo fà feci una piccola applicazione in vb6 basata su arp e udp (su windows) che faceva quel lavoro i 10 secondi. (non un pingsweeper)
Comunque quoto lucadentella sui metodi indicati.

Nik_90


io tempo fà feci una piccola applicazione in vb6 basata su arp e udp (su windows) che faceva quel lavoro i 10 secondi. (non un pingsweeper)
Comunque quoto lucadentella sui metodi indicati.


Effettivamente tool del genere già per fare il ping di 100 indirizzi ci mettono 1-2 minuti.. mi rallenterebbe tanto l'esecuzione del programma.. anche se la lista degli ip andrebbe popolato solo all'apertura del programma e basta.. ma non è il massimo in effetti!
Per quanto riguarda l'applicazione che avevi fatto tu, secondo te sarebbe possibile implementarla con c#? certo una scansione in 10 secondi sarebbe l'ideale!

Grazie mille!

Go Up