Lightweight javascript-based to analyze visitors with user-agent & ip geo location parser; легкий VisitorParser.js by Ican Bachors реализует анализ (и возможность дальнейшего, при необходимости, использования) информации о любом посетителе вашего сайта, в какой бы части света тот не находился, javascript сумеет получить не только провайдера интернета и реферера, также страну и город - по ip-адресу визитера, но и тип операционной системы его компьютера или мобильного устройства, разрядность процессора, разрешение монитора и версию используемого браузера. Не забудьте, при реализации данного решения не пострадало ни одно животное, т.е не использовано ни грамма php! - что я считаю немалым достоинством... взгляните, все это способно выглядеть примерно так, как показано далее, а подробная документация и скачать javascript - как всегда, на страничке разработчика. Super!
Внимание, информация статьи устарела. Ссылка была удалена.
<script src="/src/visitor-parser.js"></script>
<script>
visitorParser(function(data) {
// console.log(data);
document.querySelector('#default').innerHTML = JSON.stringify(data, null, 2);
});
</script>
Result:
<pre id="default"></pre>
<style type="text/css"> code {color: red;} </style>
<ul id="info"></ul>
<script src="/visitor-parser.js"></script>
<script>
var visitor = new visitorParser();
var info = visitor.getInfo();
var html = '';
if(info.geo.ip != ''){
html += '<li><b>Your IP address</b><br><code>' + info.geo.ip + '</code>';
html += (info.geo.city != '' || info.geo.country != '' ? ' tells visitorParser.js that you are from' : '');
html += (info.geo.city != '' ? ' around <code>' + info.geo.city + '</code>,' : '');
html += (info.geo.country != '' ? ' <code>' + info.geo.country + '</code>' : '');
html += (info.geo.provider != '' ? ' using the provider <code>' + info.geo.provider + '</code>' : '');
html += '.</li>';
}
html += '<li><b>Date of last visit</b><br>This seems to be your 2nd visit to the visitorParser.js website. Your last visit was on <code>' + info.ua.date + '</code>. Nice to see you again!</li>';
if(info.ua.referring.url != ''){
html += '<li><b>Referring website</b><br>You have been referred to this website by <code>' + info.ua.referring.host + '</code>.</li>';
}
if(info.ua.processor.name != '' || info.ua.platform.name != ''){
html += '<li><b>Platform or operating system</b><br>';
html += 'On <code>' + (info.ua.platform.name != '' ? info.ua.platform.name : 'n/a') + ' ' + (info.ua.platform.version != undefined ? info.ua.platform.version : '') + '</code> with processor <code>' + (info.ua.processor.name != '' ? info.ua.processor.name : 'n/a') + '</code>.';
html += '</li>';
}
html += '<li><b>Browser, engine and resolution</b><br>You seem to be using <code>' + (info.ua.browser.name != '' ? info.ua.browser.name : 'n/a') + ' ' + (info.ua.browser.version != undefined ? info.ua.browser.version : '') + '</code> and engine <code>' + (info.ua.engine.name != '' ? info.ua.engine.name : 'n/a') + ' ' + (info.ua.engine.version != undefined ? info.ua.engine.version : '') + '</code> with a resolution of <code>' + info.ua.resolution.width + '</code>x<code>' + info.ua.resolution.height + '</code> pixels.</li>';
if(info.ua.mobile.name != ''){
html += '<li><b>Mobile device</b><br>';
html += 'You are using a <code>' + info.ua.mobile.name + ' ' + (info.ua.mobile.version != undefined ? info.ua.mobile.version : '') + '</code>.';
html += '</li>';
}
document.getElementById('info').innerHTML = html;
</script>