2011-02-08 8 views
17

어쨌든 자바 스크립트 내에서 브라우저의 고유 ID를 만들 수 있습니까?자바 스크립트 고유 브라우저 ID

ID가 생성 될 때마다 무작위 인 ID에 대해 말하는 것이 아니라 생성 된 브라우저에 고유 한 ID뿐만 아니라 실행중인 컴퓨터를 고려합니다.

예 :

윈도우 7 크롬 생성 할 수 있습니다 : 오페라가 생성 될 수 있습니다

윈도우 7 asdh128hakj4gh : 23hjad823hjakk

윈도우 7 크롬, DIFF 하드웨어, 생성 할 수 있습니다 asd238881jaal

어쨌든 이것을 수행 할 예정입니까?

+1

이 ID는 Windows 7에서 크롬을 실행하는 모든 컴퓨터에 대해 동일 할 경우, 또는 세션 ID와 유사한 ID의 생각? –

+2

'userAgent' 누구? – Raynos

+0

OS, 하드웨어 및 브라우저에 따라 ID가 다를 수 있지만 동일한 OS 하드웨어 및 브라우저에서 두 번 생성 된 ID는 동일합니다. – Ozzy

답변

5

cookies과 고유 한 해시를 사용하십시오. (컴퓨터에 여러 브라우저가 있더라도 각 브라우저에는 고유 한 쿠키 항아리가 있습니다.)

+0

사실이 아닐 수도 있습니다. 파이어 폭스를 열어 쿠키에 임의의 ID를 부여하고 2nd FireFox를 열었으며 동일한 쿠키를 읽습니다. –

+5

예, 각 브라우저 설치마다 각 브라우저 인스턴스가 아닌 고유 한 쿠키 항아리가 있습니다. – IProblemFactory

0

라이센스를 얻으려고하는 것 같습니다. 그래서 많은 브라우저 만 앱을 사용하도록 등록 할 수 있습니까?

불행히도 사용자 컴퓨터 하드웨어 설정을 읽을 방법이 없습니다. 한 가지 대답은 컴퓨터에 쿠키를 저장할 수 있다고 말하지만 쉽게 누락 될 수 있습니다.

당신은 컴퓨터 하드웨어를 읽는 당신은 액티브 X를 사용할 수 오래된 IE 브라우저를 사용으로 제한 한 경우 : http://www.devarticles.com/c/a/JavaScript/How-to-Use-JavaScript-for-Hardware-Knowledge/

2

방법에 대한 사용자 에이전트 + ClientIP + 'extrasalt'의 MD5?

2 명의 클라이언트가 동일한 IP (NAT 사용)와 정확히 동일한 UserAgent (엄격하게 제어되는 IT 부서 = 동일한 배치 또는 운이 좋음)를 가질 수 있으므로 완벽하지는 않습니다.

+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);
당신은 종류와 브라우저의 버전을 얻을 수있는 이러한 코드와

, 당신이 그것을 다른 고유 한 ID 기반을 생성 할 경우 값은 다른 브라우저에 따라 고유해야합니다 , 그것을 사용하십시오

15

당신이 찾고있는 것을 브라우저 지문이라고합니다.

일부 오픈 소스 라이브러리는 google 할 수 있습니다. 예 : fingerprintjs2

체크 아웃 EFF's demo

+2

현재 django 프로젝트에서 fingerprintjs2 javascript 라이브러리를 사용하면 정말 잘 작동합니다 ... – dave4jr