Truly unique number for a computer.

  • Thread starter Thread starter UJ
  • Start date Start date
U

UJ

Is there any number I can get that is truly unique for a computer that can't
be changed? I want to have a system whereby I have a computer that accesses
a web service based on some unique value that can't be changed. Or at least
if it is changed, it's not changed frequently. (IP address won't work
because that can change frequently).

Here's my thought - the program boots up, finds some unique piece of
information, sends that off to the web service who checks that against a
master list. If the ID is there, everything is OK, if not - it stops dead
(there of course would be a way to add the ID to the master list but that
would involve human interaction.)

This is for a system whereby when a user buys our product, we only allow x
number of machines to connect to the web service and need to limit that.

I've thought about MAC address but have been told that that can be spoofed.

If there either a serial number or GUID available for the machine itself?

TIA - Jeffrey.
 
How do I get the microprocessor serial number? That was actually something I
was thinking about but don't know how to get at it.....

J.
 
Public Class Processador

Private moReturn As System.management.ManagementObjectCollection

Private moSearch As Management.ManagementObjectSearcher

Private mo As Management.ManagementObject

Private sFabricante, sNome, sSerial, sVelocidade, sTipo, sDispositivo,
sClockMaximo As String

Private sL2CacheSize, sL2CacheSpeed, sLevel, sStepping As String

Sub New()

moSearch = New Management.ManagementObjectSearcher("Select * from
Win32_Processor")

moReturn = moSearch.Get

For Each mo In moReturn

Me.sFabricante = mo("Manufacturer").ToString.Trim

Me.sNome = mo("Name").ToString.Trim

Me.sSerial = mo("ProcessorID").ToString.Trim

Me.sVelocidade = mo("CurrentClockSpeed").ToString.Trim

Me.sTipo = mo("Description").ToString.Trim

Me.sDispositivo = mo("DeviceID").ToString.Trim

Me.sClockMaximo = mo("MaxClockSpeed").ToString.Trim

Me.sL2CacheSize = mo("L2CacheSize").ToString.Trim

Me.sL2CacheSpeed = mo("L2CacheSpeed").ToString.Trim

Me.sLevel = mo("Level").ToString.Trim

Me.sStepping = mo("Stepping").ToString.Trim

Next

End Sub

end Class
 
Francisco said:
Have you tried the microprocessor serial number?

Not all procs have those anymore. And if they do, the nr can be disabled
in the BIOS.
 
Have you looked at using "Client Certificates" for this? If you use client
certs, you can configure IIS to reject connection attempts from systems that
either don't have a certificate or whose certificate has expired (or been
revoked, by you, of course). I don't know if you can then configure the
maximum number of connections but I suspect that you may also be able to do
that using IIS.

Client certificates will solve your problem.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 
Back
Top