Итак, у меня следующая ситуация - общая файловая система на N одинаковых машинах. Мое приложение работает на всех из них. Мне нужно понять, на какой машине мое приложение работает в каждом экземпляре - какой-то уникальный идентификатор... Есть ли такое, можно ли это эмулировать? Есть ли кроссплатформенная библиотека, которая поможет с этим?
Кроссплатформенная библиотека для уникальной идентификации машины, на которой в данный момент работает мое приложение?
- Я предполагаю, что MAC-адрес уникальный, если только он не подделан... 12.12.2011
- Также можно использовать серийный номер жесткого диска. 12.12.2011
- Есть много возможностей. Большинство из них связаны с аппаратным обеспечением (т. е. с использованием уникальных идентификаторов вашего оборудования). Вы даже можете смешать их и создать свой уникальный хэш, например, md5(hd_serial + mac_address). 12.12.2011
Ответы:
Здесь есть две проблемы: безопасность и стабильность вашего сопоставления.
Характеристики оборудования — хорошее место для начала. Такие вещи, как MAC-адрес, процессор, идентификаторы жесткого диска.
Эти вещи теоретически могут измениться. Если жесткий диск выйдет из строя, вы, вероятно, потеряете всю конфигурацию, которая была у вас в системе. Я мог видеть, что система, которая отправляет хэш каждой характеристики отдельно, работает нормально. Если 4 из 5 совпали, вы, вероятно, догадались, что их сетевая карта загорелась и ее заменили.
Если вам просто нужно количество сотрудников, вас может даже не интересовать, что эта новая система с другой подписью раньше была другой.
Обычно люди не слишком заботятся о безопасности этих систем; они просто хотят отслеживать ресурсы в сети. Если кто-то захочет подделать идентификаторы оборудования, он сможет это сделать. Для простых случаев я бы посмотрел на установщик, который зарегистрировал соленый идентификатор. Если вам действительно нужно что-то ужасно безопасное, вы можете начать смотреть на коммерческие продукты (или задать другой вопрос конкретно об аспектах безопасности).
Оба они, очевидно, подвержены ошибкам. Я не уверен, что вы должны полностью автоматизировать это в таких случаях. Подумайте о случае, когда сетевые карты вели себя странно, и вы заменили их на другую машину.
Человеческие глаза довольно хороши, пусть ими пользуется администратор. В худшем случае они, вероятно, смогут разобраться во всем с помощью быстрого электронного письма. Просто дайте им достаточно информации, чтобы принять взвешенное решение, когда что-то пойдет не так. Действительно, если вы просто запишете все, что должно быть, человек сможет воссоздать сценарий и принять решение. Большинство из этих вещей не будут меняться ежедневно. Когда оборудование выходит из строя, работы становится больше, и не каждый день.