Как определить устройство (Linux, Unix(s))

Все

Я хочу получить идею или метод для идентификации устройства.

Мои устройства работают в среде linux, aix, hp-ux, solaris(включая sparc).

Как определить устройство?

Я попытался использовать команду ('dmidecode') для отслеживания CPU-ID, информацию базовой платы для отслеживания устройства в качестве идентификатора без MAC-адреса, который будет изменен при смене сетевых адаптеров. но в unix(s) нет команды, а также у меня было ограничение на установку пакета.

как решить это в моей родной среде?

Спасибо за чтение.

1 ответ

Прежде всего, проблема с попыткой идентифицировать компьютер через его аппаратное обеспечение, конечно же, всегда заключается в том, что идентификатор будет меняться, как только вы меняете аппаратное обеспечение. Эта проблема не ограничивается сетевой картой.

Вы можете, например, grep идентификатор продукта и серийный номер материнской платы

$sudo lshw | grep Motherboard -A 6
  description: Motherboard
  product: <...>
  vendor: LENOVO
  physical id: 0
  version: Not Defined
  serial: <...>
  slot: Not Available

но как только вы поменяете материнскую плату, она изменится.

Хорошей идеей будет взглянуть на то, как другие обошли эту проблему, например, как Microsoft сделала это в своей активации Windows (WPA) в Windows XP. Согласно вышеупомянутому веб-сайту, они начали с проверки десяти категорий оборудования:

  • Адаптер дисплея
  • SCSI адаптер
  • Адаптер IDE (эффективно материнская плата)
  • Сетевой адаптер (NIC) и его MAC-адрес
  • Диапазон объема оперативной памяти (т. Е. 0–64 МБ, 64–128 МБ и т. Д.)
  • Тип процессора
  • Серийный номер процессора
  • Устройство жесткого диска
  • Серийный номер тома жесткого диска (VSN)
  • CD-ROM / CD-RW / DVD-ROM

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

Чтобы этот идентификатор не стал недействительным при изменении некоторых аппаратных средств, WPA проверяет, является ли оборудование практически одинаковым; он "просит десять категорий голосовать". Например, вы могли бы реализовать, чтобы как минимум семь из десяти устройств были одинаковыми, чтобы "пройти тест".

Другие вопросы по тегам