Russian Qt Forum
Ноябрь 23, 2024, 04:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: вычисление некоторого ~уникального id компа  (Прочитано 20640 раз)
nn1317
Гость
« : Сентябрь 13, 2009, 23:44 »

Доброй ночи)
Понадобилось в проекте (я лишь винтик в большой системе lol) для онлайн игры сделать чтобы у каждого компа был некоторый уникальный id. То что это жутко неудобно я знаю сам, но свыше сказали что надо.
Итак, давайте подумаем, на какие данные о железе мы можем опираться при создании такой метки по крайней мере под Win. На Lin как я понимаю много проще, если есть возможность читать /proc/* Улыбающийся
По моему мнению:
1. Процессор: частота, название
2. Материнка: фирма, модель (а если не стоят драйвера, то что тогда?), чипсет
3. Оперативка: объем, в идеале производитель+модель
4. Номер винчестера (а если SSSD как на нетбуках? - есть ли у него номер?)
5. Теоретически, можно юзать MAC-адрес(приложение то сетевое!) - но уж больно легко он меняется:)

Хотелось бы услышать мысли об этом списке и о том как можно взять всю эту инфу о системе в Qt (и можно ли вообще, или нужно WinAPI юзать?) если есть немного кода - поделитесь, буду очень признателен)
Записан
spectre71
Гость
« Ответ #1 : Сентябрь 14, 2009, 10:56 »

Доброй ночи)
Понадобилось в проекте (я лишь винтик в большой системе lol) для онлайн игры сделать чтобы у каждого компа был некоторый уникальный id. То что это жутко неудобно я знаю сам, но свыше сказали что надо.
Итак, давайте подумаем, на какие данные о железе мы можем опираться при создании такой метки по крайней мере под Win. На Lin как я понимаю много проще, если есть возможность читать /proc/* Улыбающийся
По моему мнению:
1. Процессор: частота, название
2. Материнка: фирма, модель (а если не стоят драйвера, то что тогда?), чипсет
3. Оперативка: объем, в идеале производитель+модель
4. Номер винчестера (а если SSSD как на нетбуках? - есть ли у него номер?)
5. Теоретически, можно юзать MAC-адрес(приложение то сетевое!) - но уж больно легко он меняется:)

Хотелось бы услышать мысли об этом списке и о том как можно взять всю эту инфу о системе в Qt (и можно ли вообще, или нужно WinAPI юзать?) если есть немного кода - поделитесь, буду очень признателен)

Либо "Материнка", либо "Винт"(на котором стоит система), все остальное точно не годиться, поскольку может меняться без переустановки системы и соответственно совта. Насколько помню у "Материнка" и "Винта" должны быть уникальные ID, которые можно использовать, но могу и ошибаться.

Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Сентябрь 14, 2009, 11:10 »

Занимался я подобной темой, под виндой тебе нужно использовать WMI под линуксом я использовал dmidecoder вроде,
кроссплатформенно это реализовать нельзя, тебе нужно брать версию( или номер) биоса точно непомню, параметры винта брать нельзя ибо юзверь сменил винт и всё Id уже другой.
Записан
nn1317
Гость
« Ответ #3 : Сентябрь 14, 2009, 11:16 »

Да, я вспомнил этот кошмар с WMI еще со времен когда был на WInAPI)))
Положим номер материнки. Если не стоят драйвера на нее, этот номер можно будет прочитать?
И будут ли у меня права на это, если пользователь не администратор компа?)

>параметры винта брать нельзя ибо юзверь сменил винт и всё Id уже другой.
много как бы чего нельзя брать из моего списка, но я же говорю - затея сама по себе тупиковая, но раз надо...Подмигивающий
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #4 : Сентябрь 14, 2009, 11:16 »

Щас глянул исходники вот что я брал от BIOS

BIOSVersion
ReleaseDate
SerialNumber
SMBIOSMajorVersion
SMBIOSMinorVersion

вот вобщем и всё, ID уже будет по любому уникален. И не нужно заморачиваться насчёт процессора и т.д.

Ну мы тоже запускаем софт с такой фичей, без админских прав вроде работает.

Как видишь в данном случае номер мамки тебе и ненужен. А стало быть и заморачиваться ненужно.
« Последнее редактирование: Сентябрь 14, 2009, 11:19 от ecspertiza » Записан
spectre71
Гость
« Ответ #5 : Сентябрь 14, 2009, 12:04 »

Щас глянул исходники вот что я брал от BIOS

BIOSVersion
ReleaseDate
SerialNumber
SMBIOSMajorVersion
SMBIOSMinorVersion

вот вобщем и всё, ID уже будет по любому уникален. И не нужно заморачиваться насчёт процессора и т.д.

Ну мы тоже запускаем софт с такой фичей, без админских прав вроде работает.

Как видишь в данном случае номер мамки тебе и ненужен. А стало быть и заморачиваться ненужно.

1) Нет смысла брать в состав ключа те или иные значения версий, поскольку
- они не являются уникальными
- а при наличии уникального ID, он уже достаточен и  значения версий просто мусор.

2) Если можно взять уникальный ID Материнки или HDD(на котором стоит система), то не надо заморачиваться , поскольку юзвер при ее смене однозначно должен переставить ПО, за исключением некоторых случаев(например копирование Ghost-ом и подобное, а при смене материнки еще и замена дров после копирования), на что можно смело забить и документировать в своей проге(что это запрещено или следует заново пройти регистрацию)

Записан
st0nx
Гость
« Ответ #6 : Сентябрь 14, 2009, 12:21 »

ID процессора уникален.  Подмигивающий
Материнка и оперативка отпадает сразу. На счет жесткого не слышал.
Записан
spectre71
Гость
« Ответ #7 : Сентябрь 14, 2009, 12:36 »

ID процессора уникален.  Подмигивающий
Материнка и оперативка отпадает сразу. На счет жесткого не слышал.
Процессор, память, сетевуха итд отпадают сразу!!! Поскольку при их смене нет необходимости переинсталлировать ПО!!!
Только материнка или диск(обязательно тот на котором система). Именно у них нужно искать уникальный ID
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #8 : Сентябрь 14, 2009, 12:43 »


1) Нет смысла брать в состав ключа те или иные значения версий, поскольку
- они не являются уникальными
- а при наличии уникального ID, он уже достаточен и  значения версий просто мусор.
[/quote]

Тогда вполне хватит

ReleaseDate
SerialNumber

Но к харду я бы привязываться нестал бы.
Записан
ufna
Гость
« Ответ #9 : Сентябрь 14, 2009, 12:50 »

Как пользователь, скажу - ненавижу привязки к оборудованию Улыбающийся)) Я в игрушки онлайновские играю с разных компов, чаще всего когда в гости к брату приезжаю. И чего делать?
Ересь это вообще в своем проявлении. Привязка к логину должна быть, как у всех и делается.

А если по сабжу - имхо, только биос или материнка. Иначе юзер будет вас ненавидеть Улыбающийся))
Записан
spectre71
Гость
« Ответ #10 : Сентябрь 14, 2009, 13:18 »

Тогда вполне хватит
ReleaseDate
SerialNumber
ReleaseDate - не имеет смысла(не уникальна), я об этом только-что писал
Записан
spectre71
Гость
« Ответ #11 : Сентябрь 14, 2009, 13:22 »

Как пользователь, скажу - ненавижу привязки к оборудованию Улыбающийся)) Я в игрушки онлайновские играю с разных компов, чаще всего когда в гости к брату приезжаю. И чего делать?
Ересь это вообще в своем проявлении. Привязка к логину должна быть, как у всех и делается.

А если по сабжу - имхо, только биос или материнка. Иначе юзер будет вас ненавидеть Улыбающийся))
Задачи бывают разные, естественно что если возможно, лучше не делать привязки к железу!
А биос - часть материнки, так что можно использовать любой уникальный ID который можно програмно получить с незаменяемых микросхем материнской платы.
« Последнее редактирование: Сентябрь 14, 2009, 13:26 от Spectre » Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #12 : Сентябрь 14, 2009, 13:36 »

Цитировать
А биос - часть материнки, так что можно использовать любой уникальный ID который можно програмно получить с незаменяемых микросхем материнской платы.
А можно перепрошить же!!!

Хотя можно это использовать в связке с sn процессора Улыбающийся + sn видяхи + sn оперативы , чтобы уж точно не обманули!
Записан

ArchLinux x86_64 / Win10 64 bit
spectre71
Гость
« Ответ #13 : Сентябрь 14, 2009, 13:44 »

Цитировать
А биос - часть материнки, так что можно использовать любой уникальный ID который можно програмно получить с незаменяемых микросхем материнской платы.
А можно перепрошить же!!!

Хотя можно это использовать в связке с sn процессора Улыбающийся + sn видяхи + sn оперативы , чтобы уж точно не обманули!
Препрошить уникальный серийный номер? Улыбающийся
Когда вы научитесь читать  с начала, по поводу процессора, видяхи итд уже говорилось
Записан
SABROG
Гость
« Ответ #14 : Сентябрь 14, 2009, 14:21 »

А привязка к железу нужна, чтобы если пользователя забанили, то он не смог бы перерегистрироваться сменив IP адрес или воспользовавшись прокси? Или чтобы отловить пользователей, которые с одного компа заводят много игровых аккаунтов?
« Последнее редактирование: Сентябрь 14, 2009, 20:46 от SABROG » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 22.