How to Uniquely Identify a Computer

What's a good way to uniquely identify a computer?

Another solution is to use a licensing technology with a dongle. This is a small device that plugs into USB or another I/O port on the host, and serves as a unique, physical key to activate the software.

A third solution is to provide a license manager. That is, when the software starts up, it queries a server on the network (either on the customer's LAN or else accessed at your company via the internet) that validates that the customer's usage of the software is legitimate. This is a good solution for "concurrent licenses" so customers can install your software on many hosts, but you license it for simultaneous use on a limited number of hosts. FLEXnet Publisher is an example of a license management solution.

The MAC address of the network card is the solution I used last time I worked for a company that licensed software to run on a specific host.

However, I want to offer a caution: if you do this type of licensing, you have to anticipate that it'll become an ongoing administrative chore to track your customers' licenses. Once you have a few hundred customers, you'll be amazed at how frequently you get phone calls with requests to change keys

"We upgraded our server to a gigabit
network adapter, and now the license
won't work because the new adapter has
a different MAC address."

Or else the customers may replace their whole machine, and need an updated license to run your software on the new machine. We got these calls practically every day at the company I worked for.

You also need to trust the customer to stop using your software on the old computer (or network adapter) if you give them a new key. If you couldn't trust them to obey the license in the first place, how can you trust that they'll throw away the old key?

If you don't plan how you're going to support this administrative activity, don't license your product in this way. You'll only inconvenience your good customers, who would have cooperated anyway.

how can I Uniquely identify a computer

The usual approach is to give each client a login (name + password). That way, it's easy to replace clients when they need upgrade or when they fail.

MAC address should be unique but there is no central registry which enforces this rule. There are also tools to change it, so it's only somewhat reliable.

CPU and HD IDs are harder to change but people will come complaining when their hard disk died or when they upgrade their system.

Many PCs have TPM modules which have their own IDs but they can be disabled and the IDs can be wiped. Also, there are privacy issues (people don't like it when software automatically tracks them).

Another problem with an automated ID approach is how to identify them on the server. When several clients connect for the first time in quick succession, you will have trouble to tell them apart.

Is there really any way to uniquely identify any computer at all

The fact in getting a globally unique ID is, only MAC address is the ID that will not change if you set up your system all over. IF you are generating a key for a specific product, the best way to do it is assigning unique IDs for products and combining the product ID with MAC address. Hope it helps.

What is a good unique PC identifier?

Some good identifiers:

  • MAC Address: It's fairly easy to get at, and it's usually unique. However, it can be spoofed/changed rather easily, so it depends on how unique it needs to be.
  • CPU Serial Number: It's not available on lots of older systems, but it's there. Check out this MSDN page. It won't change, but it's bound to a computer.
  • HDD Serial Number: It's likely to not change, but can be a nuisance if the HD fails. Check out this MSDN page.

How to uniquely identify a computer?

Well, you won't be able to do this from only the HTTP request, but you do have at your disposal the following techniques:

  1. Remote Address
  2. Cookies/Session
  3. User Agent
  4. Client-side Web Technologies (e.g. Java or Flash or Silverlight object)

Basically, you can use the concepts of Evercookie to identifiy a client. That being said, why not just use a login system?

How to uniquely identify computer using C#?

How about the MAC address of the network card?

How to uniquely identify computers that access a website

There is no reliable way to uniquely identify a browser, because there is nothing that prevents two computers from having the exact same configurations (operation system, browser, location, cookies, flash configuration, etc).

The best that we can do is to gather as many information about the browser as possible. This is well-known approach called browser/device fingerprinting. Although the result is not perfect, it is quite good. Browser's fingerprint typically includes browser name, operating system, fonts, plugins installed, etc. You can test how unique your browser is using https://panopticlick.eff.org/.

How to uniquely identify a computer program?

I'd create a GUID on the client and store it in settings somewhere, then send that with each message.

This can be stored in per user or global settings on the computer so you get user-based or computer-based fidelity.

This has the advantage that you are not storing any personal data, so won't run afoul of privacy laws.



Related Topics



Leave a reply



Submit