Представляю вашему вниманию js-скрипт (javascript) сбора максимальной информации о пользователе, зашедшем на сайт. Скрипт разработан мной и человеком по имени Bloodthrist.
Пример: 8BB000AA20AA.100.00000.0001 1280*800@32 ru ru ru on +2 no 69532680580.20090715094852
Здесь показывается код браузера (8BB000AA20AA.100.00000.0001), определённый не на основе User-Agent'а, информация об экране (1280*800@32), языках по умолчанию (ru ru ru), поддержке ява-апплетов (on), часовом поясе (+2), идентификаторе компьютера пользователя (no 69532680580.20090715094852).
Исходник под катом.
/**
* Скрипт определения идентификатора браузера пользователя
* Авторы - Figaroo и Bloodthrist
*/
var bf_jsver;
var bf = new function (ieq) {
var d = document, w = window, n = navigator, r = '', i, a, q, s, ll = '', ct, cp, pl, iec, ied, j, k, l, mi = 0, mid;
for (i = 1; i < 10; i++) d.write('<'+'script language="javascript1.'+i+'">bf_jsver="'+i+'";<'+'/script>');
this.jsver = bf_jsver; r += bf_jsver;
a = 'b'; try {delete this} catch (E) {a = 'a'} r += a;
a = 'b'; try {delete navigator} catch (E) {a = 'a'} r += a;
a = 0;
a += typeof Window == 'function' ? w instanceof Window ? 1 : 0 : 0;
a += typeof Document == 'function' ? d instanceof Document ? 2 : 0 : 0;
a += typeof Navigator == 'function' ? n instanceof Navigator ? 4 : 0 : 0;
r += a;
a = 'b'; try {var y = document.write; y('')} catch (E) {a = 'a'} r += a;
a = 'a'; try {eval('cons'+'t acons=true');} catch(e) {a = 'b'} r += a;
r += w.crypto ? w.crypto.alert ? 1 : 2 : 0;
r += typeof w.onload == "function" ? w.onload.toString().search('anonymous') != -1 ? 2 : 1 : 0;
r += (typeof ActiveXObject == "function" ? 'b' : 'a') + (typeof GeckoActiveXObject == "function" ? 'a' : 'b');
r += ' ';
r += (!!w.Iterator ? 1 : 0) + (!!d.addEventListener ? 2 : 0) + (/a/[-1] == 'a' ? 4 : 0);
r += ((function x(){})[-6] == 'x' ? 1 : 0) + ((function x(){})[-5] == 'x' ? 2 : 0) + (!!d.getElementsByClassName ? 4 : 0);
r += '.';
r += ieq + ('\v' == 'v' ? 'b' : 'a');
r += (d.compatMode ? 1 : 0) + (d.all ? 2 : 0) + (!!d.readyState ? 4 : 0);
r += (d.documentElement ? 1 : 0) + (d.documentElement && typeof d.documentElement.style.maxHeight != "undefined" ? 2 : 0) + (!!d.querySelectorAll ? 4 : 0);
r += '.';
r += (/a/.__proto__ == '//' ? 1 : 0) + (/source/.test((/a/.toString + '')) ? 2 : 0);
r += (!!w.opera ? 1 : 0) + (w.opera && w.opera.toString() === "[object Opera]" ? 2 : 0) + (/^function $$/.test([].sort) ? 4 : 0);
q = d.createElement('div');
q.innerHTML = '
<style>#_t{display:none;}#_t[rel^="D"]{display:block;}</style>
<span id="_t" rel="Detect"></span>';
q.style.display = 'none';
d.body.appendChild(q);
s = d.getElementById('_t');
r += ((w.getComputedStyle ? w.getComputedStyle(s, null).getPropertyValue("display") : s.currentStyle ? s.currentStyle.display : null) == 'block') ? 'a' : 'b';
d.body.removeChild(q);
this.bid = r;
r += ' ';
var ws = w.screen, cd = new Date(), tz = - cd.getTimezoneOffset() / 60;
if (ws.width && ws.height) {
r += ws.width + '*' + ws.height;
if (ws.colorDepth) r += '@' + ws.colorDepth;
else if (ws.pixelDepth) r += '@' + ws.pixelDepth;
} else r += 'undefined';
ll += n.language ? ' ' + n.language : '';
ll += n.systemLanguage ? ' ' + n.systemLanguage : '';
ll += n.browserLanguage ? ' ' + n.browserLanguage : '';
ll += n.userLanguage ? ' ' + n.userLanguage : '';
r += (ll ? ll : ' no') + (n.javaEnabled() ? ' on' : ' off');
r += ' ' + (tz > 0 ? '+'+tz : tz);
if (d.all && n.userAgent.indexOf("Opera") == -1) {
d.write('<xml:namespace ns=http://www.microsoft.com/ie prefix=IE><STYLE>@media all{IE\\:clientCaps {behavior:url(#default#clientcaps);}}</STYLE><IE:CLIENTCAPS ID="oClientCaps" />');
if (oClientCaps) {
if (oClientCaps.connectionType) ct = oClientCaps.connectionType;
if (oClientCaps.cpuClass) cp = oClientCaps.cpuClass;
if (oClientCaps.platform) pl = oClientCaps.platform;
if (typeof oClientCaps.getComponentVersion != 'undefined') {
var bbb = new Array(), ccc = new Array(0,0,0,0), ddd = '';
var CompO = new Array("{7790769C-0471-11D2-AF11-00C04FA35D02}","{89820200-ECBD-11CF-8B85-00AA005B4340}","{283807B5-2C60-11D0-A31D-00AA00B92C03}","{4F216970-C90C-11D1-B5C7-0000F8051515}","{44BBA848-CC51-11CF-AAFA-00AA00B6015C}","{9381D8F2-0288-11D0-9501-00AA00B911A5}","{36F8EC70-C29A-11D1-B5C7-0000F8051515}","{5A8D6EE0-3E18-11D0-821E-444553540000}","{89820200-ECBD-11CF-8B85-00AA005B4383}","{08B0E5C0-4FCB-11CF-AAA5-00401C608555}","{45EA75A0-A269-11D1-B5BF-0000F8051515}","{DE5AED00-A4BF-11D1-9948-00C04F98BBC9}","{22D6F312-B0F6-11D0-94AB-0080C74C7E95}","{44BBA842-CC51-11CF-AAFA-00AA00B6015B}","{3AF36230-A269-11D1-B5BF-0000F8051515}","{44BBA840-CC51-11CF-AAFA-00AA00B6015C}","{CC2A9BA0-3BDD-11D0-821E-444553540000}","{08B0E5C0-4FCB-11CF-AAA5-00401C608500}","{60B49E34-C7CC-11D0-8953-00A0C90347FF}","{03F998B2-0E00-11D3-A498-00104B6EB52E}","{0FDE1F56-0D59-4FD7-9624-E3DF6B419D0E}","{10072CEC-8CC1-11D1-986E-00A0C955B42F}","{1B00725B-C455-4DE6-BFB6-AD540AD427CD}","{4278C270-A269-11D1-B5BF-0000F8051515}","{44BBA855-CC51-11CF-AAFA-00AA00B6015C}","{4F645220-306D-11D2-995D-00C04F98BBC9}","{5FD399C0-A70A-11D1-9948-00C04F98BBC9}","{630B1DA0-B465-11D1-9948-00C04F98BBC9}","{6FAB99D0-BAB8-11D1-994A-00C04F98BBC9}","{C9E9A340-D1F1-11D0-821E-444553540600}","{D27CDB6E-AE6D-11CF-96B8-444553540000}","{E92B03AB-B707-11D2-9CBD-0000F87A369E}");
for (var iii = 0; iii < CompO.length; iii++) {
var Ver = oClientCaps.getComponentVersion(CompO[iii], "ComponentID");
var aaa = Ver.split(',');
for (var jjj = 0; jjj < aaa.length; jjj++) {
aaa[jjj]++; aaa[jjj]--; ccc[jjj] += aaa[jjj];
ddd = ccc[0] + '' + ccc[1] + '' + ccc[2] + '' + ccc[3];
}
}
iec = ddd;
}
}
}
ied = (iec?iec+'/':'')+(ct?ct+'/':'')+(cp?cp+'/':'')+(pl?pl+'/':'');
ied = ied ? '/'+ied : 'no';
this.ie = ied;
r += ' ' + ied;
if (n.mimeTypes) {
var mta = n.mimeTypes;
for (i = 0, k = mta.length; i < k; i++) {
for (j = 0, l = mta[i].type.length; j < l; j++)
mi += (mta[i].type.charCodeAt(j) * 10.3) << (10 + i*j);
}
}
mid = mi.toString();
if (n.buildID) mid += '.' + n.buildID;
this.mid = mid;
r += ' ' + (mid ? mid : 'no');
this.res = r;
}(0 /*@cc_on + (@_jscript_version * 10 % 10) @*/);
var browserId = bf.res;
// alert (browserId);
Скачать исходник: figaroo_user_info.rar.
Также рекомендуем прочитать: Определение «ID компа» (уникального ключа машины) в IE.
Не скрипт, а конфетка))) Давно уже искал на подобие этого. Он вроде у тебя на figaroos.com был реализован, если я неошибаюсь.%)
Комментарий by Rassvet — 20 апреля 2009 @ 19:17
Спасибо. Была реализована только треть скрипта. :) И, figaroos.com'а больше нет)))
Комментарий by Figaroo — 20 апреля 2009 @ 20:02
Ну то что "figaroos.com’а больше нет)))" я знаю, поэтому и написал "был реализован", ибо появлялся на нём очень часто с момента его появления=)
Комментарий by Rassvet — 20 апреля 2009 @ 20:34