2011-02-08 48 views
17

¿Existe alguna forma de crear una ID única para un navegador dentro de javascript?JavaScript ID de navegador único

No estoy hablando de una identificación que es aleatoria cada vez que se genera, sino de una identificación que es exclusiva del navegador en el que se genera, pero que también tiene en cuenta la computadora en la que se ejecuta.

Ejemplo:

Windows 7 Chrome podría generar: asdh128hakj4gh

Windows 7 Opera podría generar: 23hjad823hjakk

Chrome Windows 7, hardware diff, puede generar: asd238881jaal

etc ..

¿Hay alguna forma de hacerlo?

+1

caso de que el ID será el mismo para todos los equipos que ejecutan Chrome en Windows 7, o está pensando en una identificación similar a un identificador de sesión? –

+2

'userAgent' ¿Alguien más? – Raynos

+0

la identificación sería diferente según el sistema operativo, el hardware y el navegador, pero la identificación sería la misma si se generara dos veces en el mismo sistema operativo y en el navegador – Ozzy

Respuesta

5

Use cookies y algunos hash exclusivos en su. (Cada navegador tiene su propia jarra de cookies, incluso si en la computadora hay muchos navegadores)

+0

Quizás no sea cierto. Abrí un Firefox, le di una identificación aleatoria en una cookie, abrí 2nd FireFox, y se lee la misma cookie. –

+5

Sí, cada instalación de navegador tiene su propio contenedor de cookies, no cada instancia de navegador ... – IProblemFactory

0

¿Qué parece que estás tratando de hacer es algún tipo de licencia? ¿De modo que solo se pueden registrar tantos navegadores para usar tu aplicación?

Desafortunadamente no hay forma de leer la configuración del hardware de los usuarios. Como dice una respuesta, puede almacenar una cookie en la máquina, pero puede desaparecer fácilmente.

Si estaba restringido a usar viejos navegadores IE se puede utilizar ActiveX para leer hardware: http://www.devarticles.com/c/a/JavaScript/How-to-Use-JavaScript-for-Hardware-Knowledge/

2

¿Y el MD5 del agente de usuario + + IPCliente 'extrasalt'?

Eso lo acercará, pero no es perfecto, ya que es posible que 2 clientes tengan la misma IP (usando NAT) y exactamente el mismo UserAgent (departamento de TI estrechamente controlado = misma implementación, o simplemente suerte).

+0

-1: La mayoría de los clientes tienen direcciones IP dinámicas, y tiene suerte si un cliente mantiene la misma IP durante algunos días.Entonces, cuando la IP cambia, erróneamente considerará el nuevo hash como una nueva instancia del navegador. – 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);

Con estos códigos puede obtener el tipo y la versión del navegador, y el valor debe ser único acuerdo con otro navegador, si se desea generar otra base única de identificación en él , luego úselo

15

Lo que está buscando se llama Huella digital del navegador.

Puede buscar en google algunas bibliotecas de código abierto. Ex: fingerprintjs2

Salida EFF's demo

+2

Usando fingerprintjs2 javascript library en un proyecto django actual y funciona muy bien ... – dave4jr

Cuestiones relacionadas