Dovrei scrivere un programma in grado di leggere i nomi di tutte le interfacce di rete presenti sul sistema ed i rispettivi indirizzi IP (più o meno come avviene con il comando "ipconfig"; Tutte le informazioni estrapolate andranno poi presentate all'utente all'interno di un controllo Listview.
FInora, le istruzioni "utili" che sono riuscito a reperire sono:
- Codice: Seleziona tutto
strHostName = System.Net.Dns.GetHostName()
NetList = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces
IPAddressList = System.Net.Dns.GetHostAddresses(strHostName)
La struttura NetList è contiene i nomi e le descrizioni di tutte le interfacce di rete (ma non gli indirizzi), mentre IPAddressList contiene un sacco d'informazioni sulgli IP Address delle interfacce attualmente in stato "Up" ma nessuna informazione circa le schede.
Un modo che ho escogitato per correlare le due informazioni è cercare in NetList tutte le interfacce che risultano abilitate (OperationalState = "Up") ed andare a leggere in IPAddressList la corrispondente posizione (la prima interfaccia opertiva è infatti in posizione 0, la seconda in posizione 1, ecc.)
Il problema è che il tutto funziona solo se ogni interfaccia di rete ha un solo indirizzo assegnato: se invece è impostata con più di un indirizzo IP statico, in IPAddressList questi compaiono tutti quanti, per cui il ragionamento sopra esposto non funziona più...
Qualcuno saprebbe indicarmi se esiste un modo in VB2010 (.net Framework 3.5) per rilevare gli IP address corrispondenti a ciascuna interfaccia di rete?
Ciao e grazie!
MAx