PDA

View Full Version : [C#] Ottenere IP-ADSL e HDD-Serial


race2
26-05-2011, 17:09
Salve,
come posso ottenere il mio IP dell'ADSL e il mio Seriale dell'HDD ???

Ho provato questo per l'HDD ma non č corretto il NameSpace, non mi riconosce --> ManagementObject !!!


using System.Management;

ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" C:\"");
disk.Get();
string sn disk["VolumeSerialNumber"].ToString();


e questo per l'IP, ma mi restituisce quello della LAN del mio PC e non quello dell'ADSL:


IPHostEntry IPHost = Dns.GetHostByName(Dns.GetHostName());
string s = IPHost.AddressList[0].ToString();


potete darmi una mano ??

Darecon
26-05-2011, 18:00
Salve,
come posso ottenere il mio IP dell'ADSL e il mio Seriale dell'HDD ???

Ho provato questo per l'HDD ma non č corretto il NameSpace, non mi riconosce --> ManagementObject !!!


using System.Management;

ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" C:\"");
disk.Get();
string sn disk["VolumeSerialNumber"].ToString();


e questo per l'IP, ma mi restituisce quello della LAN del mio PC e non quello dell'ADSL:


IPHostEntry IPHost = Dns.GetHostByName(Dns.GetHostName());
string s = IPHost.AddressList[0].ToString();


potete darmi una mano ??
Per il secondo devi parsare una pagina web che te lo restituisca! esempio
: http://www.whatismyip.org/

RaouL_BennetH
26-05-2011, 18:04
Per il punto (1):

Aggiungi una referenza a quel namespace proprio nel progetto (nella dir dei riferimenti)


Per il punto (2):
Intendi l'ip del tuo router o l'ip pubblico ?

race2
27-05-2011, 09:20
Per il punto (1):

Aggiungi una referenza a quel namespace proprio nel progetto (nella dir dei riferimenti)


OK! Fatto e funziona.



Per il punto (2):
Intendi l'ip del tuo router o l'ip pubblico ?

Quello dell'ADSL quindi Pubblico.

RaouL_BennetH
27-05-2011, 10:18
Ok, per il punto 2 allora, credo che l'unica via sia di fare una richiesta esterna, tipo a www.mioip.it oppure a www.whatismyip.com (o similari) e prenderti il risultato.
Prova a documentarti sulla classe WebClient.

Non penso ci sia un modo "interno" per farlo.

DioBrando
27-05-2011, 10:54
WebClient e Regular Expression per fare il parse senza perderci la vi(s)ta.

Un esempio:
http://www.dreamincode.net/forums/topic/24692-showing-the-external-ip-address-in-c%23/

race2
27-05-2011, 11:40
ok, fatto e funzionante, grazie mille !!

P.S. solo una cosa se posso:

Per estrarre un identificativo univoco del Sistema Operativo in uso ??

RaouL_BennetH
27-05-2011, 19:54
ok, fatto e funzionante, grazie mille !!

P.S. solo una cosa se posso:

Per estrarre un identificativo univoco del Sistema Operativo in uso ??

Che intendi ?

DioBrando
28-05-2011, 01:18
ok, fatto e funzionante, grazie mille !!

P.S. solo una cosa se posso:

Per estrarre un identificativo univoco del Sistema Operativo in uso ??

La classe Environment inclusa nel namespace System ti mette a disposizione svariati membri...per conoscere NETBios, nome della macchina in rete, identificativo e versione dell'OS ecc. ecc.

http://msdn.microsoft.com/en-us/library/system.environment.is64bitoperatingsystem.aspx


Utile anche nel caso tu voglia gestire le eccezioni e renderle un po' pių parlanti (sempre che tu lo voglia/debba fare)

race2
30-05-2011, 11:59
La classe Environment inclusa nel namespace System ti mette a disposizione svariati membri...per conoscere NETBios, nome della macchina in rete, identificativo e versione dell'OS ecc. ecc.

http://msdn.microsoft.com/en-us/library/system.environment.is64bitoperatingsystem.aspx


Utile anche nel caso tu voglia gestire le eccezioni e renderle un po' pių parlanti (sempre che tu lo voglia/debba fare)

Perfetto!!!
Intendevo proprio questo, grazie !!

DioBrando
02-06-2011, 10:44
Perfetto!!!
Intendevo proprio questo, grazie !!

prego :)