0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Резюме команды
Посмотрите, какое оборудование браузер видит на этом компьютере: процессор, память, экран, видеокарту, батарею, сеть и какие API устройств у вас доступны.

Все данные считываются в вашем браузере и не отправляются на какой-либо сервер. Это те же самые веб-сайты, которые вы посещаете, поэтому они также используются для определения того, чему вы подвергаетесь при просмотре.

Как это работает

Он объединяет на одной странице все, что браузер знает о компьютере: логические ядра процессора, приблизительную оперативную память, разрешение и плотность экрана, цветовую гамму, производителя и фактическую модель видеокарты, состояние батареи, качество соединения и объем памяти, отведенный сайту.

Каждые данные поступают из разных API в браузере, и не все они доступны повсюду: информация о памяти, батарее и сети предоставляется только Chromium, а модель графического процессора зависит от расширения WebGL, которое некоторые браузеры скрывают в целях конфиденциальности. Когда данные недоступны, они указываются вместо изобретения значения.

Последний блок показывает, какие аппаратные API вы включили — NFC, Serial, USB, Bluetooth, HID, MIDI, датчики, камера, микрофон, WebGPU — чтобы заранее знать, будет ли функция работать в этом браузере. Все рассчитывается локально — ничего, что вы видите, не отправляется на сервер.

Примеры

navigator.hardwareConcurrency8Возвращает логические потоки, которые браузер предлагает странице, которых может быть меньше, чем у реального процессора в экономичном режиме или на фоновых вкладках.
navigator.deviceMemory8Память округляется до дискретных значений (0,25, 0,5, 1, 2, 4, 8), чтобы не служить отпечатком пальца: компьютер с 12 ГБ сообщает 8.
window.devicePixelRatio2Указывает, сколько физических пикселей занимает пиксель CSS. Умножьте заявленное разрешение на это значение, чтобы оценить фактическое разрешение панели.

Сценарии использования

  • За считанные секунды проверьте, какой компьютер находится перед пользователем, который сообщает о проблеме, не запрашивая снимки экрана системы.
  • Убедитесь, что машина использует выделенный или встроенный графический процессор, когда веб-приложение работает медленно.
  • Прежде чем разрабатывать эти API, узнайте, поддерживает ли браузер устройства NFC, последовательный порт, USB или Bluetooth.
  • Посмотрите, сколько информации ваш браузер предоставляет любому сайту, который вы посещаете, и решите, следует ли ограничить ее.
  • Задокументируйте оборудование в описи или квитанции, скопировав весь отчет в формате JSON.

Часто задаваемые вопросы

Почему заявленная память не соответствует памяти компьютера?

Потому что браузер не дает реальной ценности: он округляет ее до фиксированного масштаба, который заканчивается на 8 ГБ. Устройство с 16 или 32 ГБ также сообщает 8. Это решение о конфиденциальности, поэтому эти данные не служат для идентификации устройства.

Почему не отображается модель моей видеокарты?

Фактический производитель и модель взяты из расширения WEBGL_debug_renderer_info, которое некоторые браузеры — Safari и Firefox с усиленной защитой — отключают. В этом случае отображаются общие значения, сообщаемые WebGL.

Почему я не вижу информацию о батарее или сети?

API состояния батареи и API сетевой информации реализованы только в браузерах на базе Chromium. В Firefox и Safari эти блоки не отображаются, поскольку браузер не предоставляет данные напрямую.

Является ли разрешение, которое оно показывает, реальным разрешением моего монитора?

Первая строка находится в пикселях CSS, что является логическим разрешением после масштабирования системы. Умножение на плотность пикселей дает расчетное физическое разрешение панели, которое также показано. На экранах с нецелочисленным масштабированием может быть разница в один пиксель.

Позволяют ли эти данные меня идентифицировать?

Их комбинация является частью так называемого отпечатка браузера, и именно поэтому производители округляют или скрывают различные значения. Этот инструмент показывает их только вам: они рассчитываются на вашем компьютере и не сохраняются и не отправляются на какой-либо сервер.