2011-02-08 2 views
17

Есть ли способ создать уникальный идентификатор для браузера в javascript?JavaScript Уникальный идентификатор браузера

Я не говорю об идентификаторе, который является случайным каждый раз, когда он сгенерирован, но идентификатор, который является уникальным для браузера, в котором он сгенерирован, но также учитывает работу компьютера.

Пример:

Windows 7 Chrome может генерировать: asdh128hakj4gh

ОС Windows 7 Opera может генерировать: 23hjad823hjakk

Windows 7 Chrome, дифф оборудование, может генерировать: asd238881jaal

и т.д .. .

Есть ли все-таки сделать это?

+1

Если идентификатор будет одинаковым для всех компьютеров, работающих под управлением Chrome на Windows 7, или вы думаете о подобной ID идентификатор сеанса? –

+2

'userAgent' кто-нибудь? – Raynos

+0

Идентификатор будет отличаться в зависимости от os, hardware и браузера, но идентификатор будет таким же, если сгенерирован дважды на одном и том же аппаратном обеспечении и браузере – Ozzy

ответ

5

Используйте cookies и некоторые уникальные хэш в его. (У каждого браузера есть собственная банка cookie, даже если на компьютере много браузеров)

+0

Возможно, это неверно. Я открыл FireFox, дал ему случайный идентификатор в cookie, открыл 2-й FireFox, и он читает тот же файл cookie. –

+5

Да, у каждой установки браузера есть свой куки-файл cookie, но не каждый экземпляр браузера ... – IProblemFactory

0

Как вы думаете, что вы пытаетесь сделать, это своего рода лицензирование? Чтобы можно было зарегистрировать только столько браузеров, чтобы использовать ваше приложение?

К сожалению, нет возможности прочитать настройки компьютера пользователей. Как говорится в одном из ответов, вы можете хранить cookie на машине, но это может легко пропасть.

Если вы ограничены в использовании старых браузеров IE вы можете использовать ActiveX для чтения компьютерной техники: http://www.devarticles.com/c/a/JavaScript/How-to-Use-JavaScript-for-Hardware-Knowledge/

2

Как насчет MD5 в UserAgent + ClientIP + extrasalt?

Это поможет вам закрыть, но не идеально, потому что для двух клиентов может быть один и тот же IP-адрес (с использованием NAT) и точно такой же UserAgent (строго контролируемый ИТ-отдел = такое же развертывание или просто удача).

+0

-1: У большинства клиентов есть динамические IP-адреса, и вам повезло, если клиент хранит один и тот же IP-адрес в течение нескольких дней.Поэтому, когда IP изменяется, вы ошибочно рассмотрите новый хэш как новый экземпляр браузера. – reallynice

1

 var Sys = {}; 
 
     var ua = navigator.userAgent.toLowerCase(); 
 
     var s; 
 
     (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : 
 
     (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : 
 
     (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] : 
 
     (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] : 
 
     (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0; 
 

 
    
 
     if (Sys.ie) document.write('IE: ' + Sys.ie); 
 
     if (Sys.firefox) document.write('Firefox: ' + Sys.firefox); 
 
     if (Sys.chrome) document.write('Chrome: ' + Sys.chrome); 
 
     if (Sys.opera) document.write('Opera: ' + Sys.opera); 
 
     if (Sys.safari) document.write('Safari: ' + Sys.safari);

С этим кодом вы можете получить тип и версию браузера, и это значение должно быть уникальным в соответствии с другим браузером, если вы хотите создать другой уникальный идентификатор базы на нем , а затем использовать его

15

Что вы ищете, так называется отпечаток пальца браузера.

Вы можете использовать Google для некоторых библиотек с открытым исходным кодом. Ex: fingerprintjs2

Заканчивать EFF's demo

+2

Использование javascript-библиотеки fingerprintjs2 в текущем проекте django, и она работает очень хорошо ... – dave4jr

 Смежные вопросы

  • Нет связанных вопросов^_^