>Il problema è che non conosco gli indirizzi IP dei computer,
>e nemmeno i loro nomi.
>Il problema è che non conosco gli indirizzi IP dei computer,
>e nemmeno i loro nomi.
Una tipica rete locale con maschera 255.255.255.0 tutti i nodi collegati dovrebbero avere lo stesso indirizzo ip del tipo a.a.a.x con solo x variabile.
Pensavo che potresti provare a ricavare l'indirizzo della macchina su cui gira l'applicazione e spazzolare tutti gli indirizzi ip, cambiando l'ultimo numero, con l'istruzione getHostEntry.
Con l'istruzione:
IPAddress[] myIp = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
ottieni tutti gli indirizzi associati alla macchina locale, possono essere più d'uno (ad esempio uno per la rete locale ed uno l'indirizzo su internet), ho fatto qualche prova e sembra che l'indirizzo locale venga messo come primo elemeto dell'array myIp.
a questo punto puoi passare in rassegna tuttu gli indirizzi
String ipString= myIp[0].ToString();
int ind=ip.LastIndexOf(".");
ip = ip.Substring(0, ip.LastIndexOf('.'))+".";
for (int i = 0; i < 255; i++)
Console.writeLine(Dns.GetHostEntry(ip+i).HostName);
ho provato ad eseguire il codice, praticamente se trova il pc associato all'indirizzo ip restituisce il nome, altrimenti ritorna di nuovo l'indirizzo ip.
Purtroppo però l'esecuzione è molto lenta, a causa del fatto che deve interrogare 255 pc...
Una volta eliminato l'impossibile, quello che resta, per improbabile che sia, deve essere la verità (S.Holmes)