Indentyfikacja sprzętu

0

Chodzi mi o numer generowany w oparciu o hardware. Mi chodzi o dane źródłowe. Potem można użyć md5 z kluczem, czy czegoś, żeby wygenerować numer ID.

Udało mi się odczytać adresy MAC kart sieciowych:

string MacAddr = "";
foreach (System.Net.NetworkInformation.NetworkInterface N in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
{
 MacAddr = MacAddr + N.GetPhysicalAddress().ToString();
}

Jeżeli jest kilka interfejsów, to będzie ciąg sklejonych adresów MAC.

Jeżeli się da, to chciałbym odnaleźć jakieś inne dane na temat hardware, szczególnie numer seryjny dysku twardego.

Użycie klasy System.Management odpada.

0

Jeśli System.Management odpada, to musisz przetłumaczyć sobie na C# kod z tego przykładu:
http://msdn.microsoft.com/en-us/library/aa390423%28v=vs.85%29.aspx

Sprowadza się to do napisania od nowa tego, co jest już zawarte System.Management

0

Właśnie chodzi o niekorzystanie z WMI. Tak, jak było to możliwe w przypadku karty sieciowej, czy jest możliwe wydobycie info o innym sprzęcie?

0

Jest jakiś powód, dla którego nie możesz skorzystać z WMI?

0
Rev.pl napisał(a)

Jest jakiś powód, dla którego nie możesz skorzystać z WMI?

Windows Management Instrumentation, jak nazwa mówi, jest częścią systemu Windows, a nie częścią .NET, więc na innych systemach z całą pewnością nie ruszy.

A dlaczego nie System.Management?
Wystarczy popatrzeć na załączony obrazek (widoczny kod na obrazku wykonuje się zaraz na początku, zrzut wykonany zaraz po próbie uruchomienia progrmu), a ponadto, ciąg znaków "Win32" w nazwie parametru chyba coś mówi.
Jest to lekko zmodyfikowany fragment z tej strony: http://www.eggheadcafe.com/articles/20030511.asp.
Natomiast fragment z tej samej strony identyfikujący dysk, od razu sugeruje, że wykorzystuje fakt, że w systemie Windows partycje mają litery alfabetu, czego w Linuxie i macu nie ma, a podobno w Windows tez ma to zniknąć. Nie śledzę rozwoju Windows, kiedyś, jak jeszcze Visty nie było, zapowiadali, że w Windows7 nie będzie liter dysków, nie wiem, czy wywiązali się z tej zapowiedzi, bo nie mam 7.

0

I tak i tak będziesz musiał przedstawić oddzielne rozwiązania dla Uniksów i Windowsów.

http://www.webmasterworld.com/forum40/957.htm

Tutaj masz dyskusję na temat unikalnej wartości identyfikującej maszynę i między innymi przedstawiony powód dla którego numer seryjny dysku twardego to nie jest najlepszy pomysł.

ps. Twój nick to nazwisko mojego dziekana, jak za pierwszym razem zobaczyłem go na forum to autentycznie myślałem, że to on :P.

0

Czy dobrze rozumiem, że .NET sam w sobie nie udostępnia odczytu konfiguracji sprzętowej w sposób jednolity dla każdego OS, tylko WMI to takie obejście tego braku, który działa tylko w Windows?

0

A czy wszystkie systemy operacyjne dają jednolity interfejs udostępniający informacje o konfiguracji sprzętowej?

0
somekind napisał(a)

A czy wszystkie systemy operacyjne dają jednolity interfejs udostępniający informacje o konfiguracji sprzętowej?

No nie bardzo, tak jak każdy system ma inne API, inny interfejs graficzny, inny system plików.
Ale w .NET i Javie chodzi o ujednolicenie dla programu, że wtedy platforma unieruchomienia tłumaczy wywołanie z programu na postać charakterystyczną dla danego systemu. Prawda?

0

Tak, masz rację. Tyle, że .NET jest tylko pod Windows, a Mono nie zawiera System.Management.

1 użytkowników online, w tym zalogowanych: 0, gości: 1