Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get unique, static id from a device via web request

I have an MVC application that I would like to add some custom stats to. For some of the stats, it would be nice to have a unique identifier for a device.

For example, if I have a unique id for a RSS subscriber, I can monitor the active number of RSS subscribers.

I was wondering if anyone knew of anything in the web request that could be used as an ID other than the IP (which can obviously change). Something like a device ID or something?

Thanks,

Oliver

like image 300
Oliver Avatar asked Jun 22 '11 19:06

Oliver


People also ask

How do I find the unique device ID?

* getDeviceId() returns the unique device ID. * For example,the IMEI for GSM and the MEID or ESN for CDMA phones. * getSubscriberId() returns the unique subscriber ID, * For example, the IMSI for a GSM phone.

Is there a unique Android device ID?

The android Device ID is a unique code, string combinations of alphabets and numbers, given to every manufactured android device. This code is used to identify and track each android device present in the world.

How do I find my browser device ID?

Well after further research, the answer is: No, it's not possible right now to get a mobile device id number from its browser...

How do I get the device ID in react JS?

Every mobile device in the world has its unique ID which is a combination of Alphabetic and Numeric characters. To get the device's Unique ID and we can use the react-native-device-info library. The unique device ID is used to identify a device uniquely.


2 Answers

Here are some approaches to consider.

HTTP Headers

There are a few HTTP Headers you can look at that can help you identify a unique user or device - some would refer to the sim card, some refer to the device. Here is a list that I derived from the headers that Google Adsense Mobile uses to help track their advertising:

  • x-dcmguid
  • x-up-subno
  • x-jphone-uid
  • x-em-uid

These are probably some very popular one's, but there would be more vendor/device specific headers that are popular. You could start gathering all the headers your site receives and count how many of each you receive and start building up your own database of common headers.

Some other approaches

Cookies

Cookies is something that can be set on the requesting agent (browser for example) and returned when the agent visits again. For a list of methods, check out Ever Cookie - the virtually permanent cookie - it works by using one of the following methods of which at least one will work:

 - Standard HTTP Cookies 
 - Local Shared Objects (Flash Cookies)
 - Silverlight Isolated Storage 
 - Storing cookies in RGB values of auto-generated, force-cached 
    PNGs using HTML5 Canvas tag to read pixels (cookies) back out
 - Storing cookies in Web History 
 - Storing cookies in HTTP ETags 
 - Storing cookies in Web cache 
 - window.name caching
 - Internet Explorer userData storage
 - HTML5 Session Storage 
 - HTML5 Local Storage 
 - HTML5 Global Storage 
 - HTML5 Database Storage via SQLite

Combinations

It's also possible to come up with your own scheme, e.g. take the user-agent header, some other headers like accept, x-fowarded-for and the ip make a unique hash value of out them to more accurately determine the uniqueness of the agent.

There are many different mobile headers as seen here. I also hit a page of mine and store mobile headers from various devices for my own purposes here http://wap.defza.com/ua/ua.txt (also ua1.txt, ua2.txt etc)

like image 75
David d C e Freitas Avatar answered Oct 04 '22 18:10

David d C e Freitas


The short answer is their isn't any (and with good reason given privacy concerns). The more helpful answer would be that this is something you would normally do using cookies. You set a cookie and then check that to identify the specific browser making the request.

Of course, this is by no means fool-proof as users can reject cookies, delete them and they can use many different browsers (each of which will have a different cookie). If you are being devious (and I wouldn't recommend this) you could use a Local Shared Object (Flash Cookie) as this is less likely to be removed. At the end of the day, though, if someone doesn't want to be tracked you can't force them to be.

Generally, though, if you want analytics and tracking then consider using a 3rd party solution like Google Analytics. This will give you very detailed data (albeit still relying on cookies and javascript) about your visitors and their browsing habits.

like image 28
Dan Diplo Avatar answered Oct 04 '22 16:10

Dan Diplo