Подтвердить что ты не робот

Идентификатор обозревателя JavaScript

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

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

Пример:

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

Операционная система Windows 7 может генерировать: 23hjad823hjakk

Windows 7 Chrome, аппаратное обеспечение diff может генерировать: asd238881jaal

и т.д...

Есть ли способ сделать это?

4b9b3361

Ответ 1

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

Ответ 2

То, что вы ищете, называется браузером Fingerprinting.

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

Отъезд демо EFF

Ответ 3

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

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

Ответ 4

     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);

Ответ 5

Похоже, что вы пытаетесь сделать что-то вроде лицензирования? Так что только так много браузеров могут быть зарегистрированы для использования вашего приложения?

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

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