Здравствуйте, vsb, Вы писали:
vsb>У USB есть дескрипторы. Они должны быть доступны через какое-то API. В device descriptor есть поля idVendor, idProduct, bcdDevice, iManufacturer, iProduct, iSerialNumber. Не все из них обязательны и не все устройства их реализуют как положено, но в теории iSerialNumber должен быть уникальным для устройства, ну а остальные поля идентифицируют модель устройства. В общем полагаться на это на 100% нельзя, но для каких-то конкретных случаев с известными устройствами с нормально написанной прошивкой — можно.
У некоторык классов устройств (например, у принтеров), iSerialNumber надёжен. У других классов (например, у мышей-клавиатур) он прописывается от балды и может повторяться.
У сетевых карт есть еще MAC address, он тоже надёжен.