Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Определяем пользовательские настройки и настройки его браузера
 
 автор: TetRiska   (12.10.2011 в 02:00)   письмо автору
 
 

Всем привет. Собственно эта тема есть продолжением по написанию подсчета статистики посещений (счетчика). Как мне порекомендовали, то лучше все данные получать на javascript-e, т.к. написать бота по накрутке будет сложней, т.е. перехватить и подменить хидеры посылаемые браузером клиента на сервер проще простого. Собственно вот что я смог вытянуть из клиента и его браузера:
document.write("<b>Кодовое название Web-обозревателя:</b> " + navigator.appCodeName + " <font color='red'>(work All)</font><br/>");
document.write("<b>Название Web-обозревателя:</b> " + navigator.appName + " <font color='red'>(work All)</font><br/>");
document.write("<b>Версия Web-обозревателя:</b> " + navigator.appVersion + " <font color='red'>(work All)</font><br/>");
    
var browserLanguage = typeof navigator.browserLanguage != 'undefined' ? navigator.browserLanguage : 'не поддерживается';

document.write("<b>Язык Web-обозревателя:</b> " + browserLanguage + " <font color='green'>(work IE 6-8, Opera 9.25-11.51)</font><br/>");
document.write("<b>Включены ли Cookie?</b> " + navigator.cookieEnabled + " <font color='red'>(work All)</font><br/>");
    
var cpuClass = typeof navigator.cpuClass != 'undefined' ? navigator.cpuClass : 'не поддерживается';
    
document.write("<b>Класс процессора клиентского компьютера:</b> " + cpuClass + " <font color='green'>(work IE 6-8)</font><br/>");
    
var language = typeof navigator.language != 'undefined' ? navigator.language : 'не поддерживается';
    
document.write("<b>Язык Web-обозревателя:</b> " + language + " <font color='green'>(FF 7, Chrome 11, Opera 9.25-11.51)</font><br/>");
document.write("<b>Клиентская платформа:</b> " + navigator.platform + " <font color='red'>(work All)</font><br/>");
    
var plugL = navigator.plugins.length != 0 ? navigator.plugins.length : 0;
    
document.write("<b>Количество всех plug-in'ов, установленных на клиенте:</b> " + plugL + " <font color='red'>(work All)</font><br/>");
    
var plugins='';
var coma=0;
for(var i=0;i<plugL;i++){
    coma++;
    plugins += navigator.plugins[i].name+(coma != plugL ? ', ' : '');
}
    
plugins = navigator.plugins.length != 0 ? plugins : '-';
    
document.write("<b>Список всех plug-in'ов, установленных на клиенте:</b> " + plugins + " <font color='red'>(work All)</font><br/>");
    
var typeL = navigator.mimeTypes.length != 0 ? navigator.mimeTypes.length : 0;
    
document.write("<b>Количество всех MIME-типов, поддерживаемых клиентом:</b> " + typeL + " <font color='red'>(work All)</font><br/>");
    
var types='';
var coma2=0;
for(var j=0;j<typeL;j++){
    coma2++;
    types += navigator.mimeTypes[j].type+(coma2 != typeL ? ', ' : '');
}
    
types = navigator.mimeTypes.length != 0 ? types : '-';
    
document.write("<b>Список всех MIME-типов, поддерживаемых клиентом:</b> " + types + " <font color='red'>(work All)</font><br/>");
    
var systemLanguage = typeof navigator.systemLanguage != 'undefined' ? navigator.systemLanguage : 'не поддерживается';
    
document.write("<b>Язык ОС клиента:</b> " + systemLanguage + " <font color='green'>(work IE 6-8)</font><br/>");
document.write("<b>Юзерагент:</b> " + navigator.userAgent + " <font color='red'>(work All)</font><br/>");
    
var userLanguage = typeof navigator.userLanguage != 'undefined' ? navigator.userLanguage : 'не поддерживается';
    
document.write("<b>Язык Web-обозревателя:</b> " + userLanguage + " <font color='green'>(work IE 6-8, Opera 9.25-11.51)</font><br/>");
document.write("<b>Включена ли Java?</b> " + navigator.javaEnabled() + " <font color='red'>(work All)</font><br/>"); 
    
var ctime = new Date();
    
document.write("<b>Часовой пояс клиента:</b> GMT +0" + -ctime.getTimezoneOffset()/60 + ":00 <font color='red'>(work All)</font><br/>");
document.write("<b>Текущее разрешение экрана клиента:</b> " + screen.width + "х" + screen.height + " <font color='red'>(work All)</font><br/>");
    
var colors = screen.colorDepth;
    
document.write("<b>Глубина цвета палитры для отображения изображений:</b> " + colors + " бит <font color='red'>(work All)</font><br/>");
document.write("<b>Количество цветов:</b> " + Math.pow(2,colors) + " <font color='red'>(work All)</font><br/>");
    
var fontSmoothingEnabled = typeof screen.fontSmoothingEnabled != 'undefined' ? screen.fontSmoothingEnabled : 'не поддерживается';
    
document.write("<b>Включено ли сглаживание шрифтов?</b> " + fontSmoothingEnabled + " <font color='green'>(work IE 6-8)</font><br/>");
    
if (navigator.userAgent.indexOf("MSIE") > 0) {
    var percentage = document.body.clientWidth * document.body.clientHeight;
}else{                                                
    var percentage = window.outerWidth * window.outerHeight;
}
    
var percent = Math.round((percentage/(screen.width * screen.height)*100) * Math.pow(10, 0));

document.write("<b>Процент использования экрана в Web-обозревателе:</b> " + percent + " % <font color='red'>(work All)</font><br/>");

Если все это вывести, то можно увидеть комментарии к каждой строке, в виде работает везде (work All) или в конкретном браузере (work IE 6-8).

1. Интересно, что еще можно определить с помощью javascript-a?
2. Для записи в БД я буду использовать только те варианты, где написано (work All), но не все тоже, а именно:
- Кодовое название Web-обозревателя
- Название Web-обозревателя
- Версия Web-обозревателя
- Включены ли Cookie
- Клиентская платформа
- Количество всех plug-in'ов, установленных на клиенте
- Количество всех MIME-типов, поддерживаемых клиентом
- Юзерагент
- Включена ли Java
- Часовой пояс клиента
- Текущее разрешение экрана клиента
- Глубина цвета палитры для отображения изображений
- Количество цветов
- Процент использования экрана в Web-обозревателе (под вопросом)

Определять ИП буду уже на php, ибо javascript, насколько я знаю, это не может. Отсылать все полученные данные в php скрипт буду в зашифрованном виде. А так в общих чертах как подход?

  Ответить  
 
 автор: TetRiska   (13.10.2011 в 09:49)   письмо автору
 
   для: TetRiska   (12.10.2011 в 02:00)
 

up

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования