Название: вычисление некоторого ~уникального id компа Отправлено: nn1317 от Сентябрь 13, 2009, 23:44 Доброй ночи)
Понадобилось в проекте (я лишь винтик в большой системе lol) для онлайн игры сделать чтобы у каждого компа был некоторый уникальный id. То что это жутко неудобно я знаю сам, но свыше сказали что надо. Итак, давайте подумаем, на какие данные о железе мы можем опираться при создании такой метки по крайней мере под Win. На Lin как я понимаю много проще, если есть возможность читать /proc/* :) По моему мнению: 1. Процессор: частота, название 2. Материнка: фирма, модель (а если не стоят драйвера, то что тогда?), чипсет 3. Оперативка: объем, в идеале производитель+модель 4. Номер винчестера (а если SSSD как на нетбуках? - есть ли у него номер?) 5. Теоретически, можно юзать MAC-адрес(приложение то сетевое!) - но уж больно легко он меняется:) Хотелось бы услышать мысли об этом списке и о том как можно взять всю эту инфу о системе в Qt (и можно ли вообще, или нужно WinAPI юзать?) если есть немного кода - поделитесь, буду очень признателен) Название: Re: вычисление некоторого ~уникального id компа Отправлено: spectre71 от Сентябрь 14, 2009, 10:56 Доброй ночи) Либо "Материнка", либо "Винт"(на котором стоит система), все остальное точно не годиться, поскольку может меняться без переустановки системы и соответственно совта. Насколько помню у "Материнка" и "Винта" должны быть уникальные ID, которые можно использовать, но могу и ошибаться.Понадобилось в проекте (я лишь винтик в большой системе lol) для онлайн игры сделать чтобы у каждого компа был некоторый уникальный id. То что это жутко неудобно я знаю сам, но свыше сказали что надо. Итак, давайте подумаем, на какие данные о железе мы можем опираться при создании такой метки по крайней мере под Win. На Lin как я понимаю много проще, если есть возможность читать /proc/* :) По моему мнению: 1. Процессор: частота, название 2. Материнка: фирма, модель (а если не стоят драйвера, то что тогда?), чипсет 3. Оперативка: объем, в идеале производитель+модель 4. Номер винчестера (а если SSSD как на нетбуках? - есть ли у него номер?) 5. Теоретически, можно юзать MAC-адрес(приложение то сетевое!) - но уж больно легко он меняется:) Хотелось бы услышать мысли об этом списке и о том как можно взять всю эту инфу о системе в Qt (и можно ли вообще, или нужно WinAPI юзать?) если есть немного кода - поделитесь, буду очень признателен) Название: Re: вычисление некоторого ~уникального id компа Отправлено: ecspertiza от Сентябрь 14, 2009, 11:10 Занимался я подобной темой, под виндой тебе нужно использовать WMI под линуксом я использовал dmidecoder вроде,
кроссплатформенно это реализовать нельзя, тебе нужно брать версию( или номер) биоса точно непомню, параметры винта брать нельзя ибо юзверь сменил винт и всё Id уже другой. Название: Re: вычисление некоторого ~уникального id компа Отправлено: nn1317 от Сентябрь 14, 2009, 11:16 Да, я вспомнил этот кошмар с WMI еще со времен когда был на WInAPI)))
Положим номер материнки. Если не стоят драйвера на нее, этот номер можно будет прочитать? И будут ли у меня права на это, если пользователь не администратор компа?) >параметры винта брать нельзя ибо юзверь сменил винт и всё Id уже другой. много как бы чего нельзя брать из моего списка, но я же говорю - затея сама по себе тупиковая, но раз надо...;) Название: Re: вычисление некоторого ~уникального id компа Отправлено: ecspertiza от Сентябрь 14, 2009, 11:16 Щас глянул исходники вот что я брал от BIOS
BIOSVersion ReleaseDate SerialNumber SMBIOSMajorVersion SMBIOSMinorVersion вот вобщем и всё, ID уже будет по любому уникален. И не нужно заморачиваться насчёт процессора и т.д. Ну мы тоже запускаем софт с такой фичей, без админских прав вроде работает. Как видишь в данном случае номер мамки тебе и ненужен. А стало быть и заморачиваться ненужно. Название: Re: вычисление некоторого ~уникального id компа Отправлено: spectre71 от Сентябрь 14, 2009, 12:04 Щас глянул исходники вот что я брал от BIOS BIOSVersion ReleaseDate SerialNumber SMBIOSMajorVersion SMBIOSMinorVersion вот вобщем и всё, ID уже будет по любому уникален. И не нужно заморачиваться насчёт процессора и т.д. Ну мы тоже запускаем софт с такой фичей, без админских прав вроде работает. Как видишь в данном случае номер мамки тебе и ненужен. А стало быть и заморачиваться ненужно. 1) Нет смысла брать в состав ключа те или иные значения версий, поскольку - они не являются уникальными - а при наличии уникального ID, он уже достаточен и значения версий просто мусор. 2) Если можно взять уникальный ID Материнки или HDD(на котором стоит система), то не надо заморачиваться , поскольку юзвер при ее смене однозначно должен переставить ПО, за исключением некоторых случаев(например копирование Ghost-ом и подобное, а при смене материнки еще и замена дров после копирования), на что можно смело забить и документировать в своей проге(что это запрещено или следует заново пройти регистрацию) Название: Re: вычисление некоторого ~уникального id компа Отправлено: st0nx от Сентябрь 14, 2009, 12:21 ID процессора уникален. ;)
Материнка и оперативка отпадает сразу. На счет жесткого не слышал. Название: Re: вычисление некоторого ~уникального id компа Отправлено: spectre71 от Сентябрь 14, 2009, 12:36 ID процессора уникален. ;) Процессор, память, сетевуха итд отпадают сразу!!! Поскольку при их смене нет необходимости переинсталлировать ПО!!!Материнка и оперативка отпадает сразу. На счет жесткого не слышал. Только материнка или диск(обязательно тот на котором система). Именно у них нужно искать уникальный ID Название: Re: вычисление некоторого ~уникального id компа Отправлено: ecspertiza от Сентябрь 14, 2009, 12:43 1) Нет смысла брать в состав ключа те или иные значения версий, поскольку - они не являются уникальными - а при наличии уникального ID, он уже достаточен и значения версий просто мусор. [/quote] Тогда вполне хватит ReleaseDate SerialNumber Но к харду я бы привязываться нестал бы. Название: Re: вычисление некоторого ~уникального id компа Отправлено: ufna от Сентябрь 14, 2009, 12:50 Как пользователь, скажу - ненавижу привязки к оборудованию :))) Я в игрушки онлайновские играю с разных компов, чаще всего когда в гости к брату приезжаю. И чего делать?
Ересь это вообще в своем проявлении. Привязка к логину должна быть, как у всех и делается. А если по сабжу - имхо, только биос или материнка. Иначе юзер будет вас ненавидеть :))) Название: Re: вычисление некоторого ~уникального id компа Отправлено: spectre71 от Сентябрь 14, 2009, 13:18 Тогда вполне хватит ReleaseDate - не имеет смысла(не уникальна), я об этом только-что писалReleaseDate SerialNumber Название: Re: вычисление некоторого ~уникального id компа Отправлено: spectre71 от Сентябрь 14, 2009, 13:22 Как пользователь, скажу - ненавижу привязки к оборудованию :))) Я в игрушки онлайновские играю с разных компов, чаще всего когда в гости к брату приезжаю. И чего делать? Задачи бывают разные, естественно что если возможно, лучше не делать привязки к железу!Ересь это вообще в своем проявлении. Привязка к логину должна быть, как у всех и делается. А если по сабжу - имхо, только биос или материнка. Иначе юзер будет вас ненавидеть :))) А биос - часть материнки, так что можно использовать любой уникальный ID который можно програмно получить с незаменяемых микросхем материнской платы. Название: Re: вычисление некоторого ~уникального id компа Отправлено: kuzulis от Сентябрь 14, 2009, 13:36 Цитировать А биос - часть материнки, так что можно использовать любой уникальный ID который можно програмно получить с незаменяемых микросхем материнской платы. А можно перепрошить же!!!Хотя можно это использовать в связке с sn процессора :) + sn видяхи + sn оперативы , чтобы уж точно не обманули! Название: Re: вычисление некоторого ~уникального id компа Отправлено: spectre71 от Сентябрь 14, 2009, 13:44 Цитировать А биос - часть материнки, так что можно использовать любой уникальный ID который можно програмно получить с незаменяемых микросхем материнской платы. А можно перепрошить же!!!Хотя можно это использовать в связке с sn процессора :) + sn видяхи + sn оперативы , чтобы уж точно не обманули! Когда вы научитесь читать с начала, по поводу процессора, видяхи итд уже говорилось Название: Re: вычисление некоторого ~уникального id компа Отправлено: SABROG от Сентябрь 14, 2009, 14:21 А привязка к железу нужна, чтобы если пользователя забанили, то он не смог бы перерегистрироваться сменив IP адрес или воспользовавшись прокси? Или чтобы отловить пользователей, которые с одного компа заводят много игровых аккаунтов?
Название: Re: вычисление некоторого ~уникального id компа Отправлено: nn1317 от Сентябрь 14, 2009, 16:12 2SABROG: первый вариант)
спасибо всем за ответы) может кто нить выложить Wbemidl.h и wbemuuid.lib?) Название: Re: вычисление некоторого ~уникального id компа Отправлено: Alp от Сентябрь 18, 2009, 23:29 А почему бы не взять за основу MAC-адрес сетевухи? Если проект онлайновый вряд ли окажется, что нет сетевой карты ;-) А МАС-и вроде как должны быть уникальными (пока кто-нибудь не полезет его руками менять, но это нечастая операция).
Название: Re: вычисление некоторого ~уникального id компа Отправлено: spectre71 от Сентябрь 27, 2009, 09:14 А почему бы не взять за основу MAC-адрес сетевухи? Если проект онлайновый вряд ли окажется, что нет сетевой карты ;-) А МАС-и вроде как должны быть уникальными (пока кто-нибудь не полезет его руками менять, но это нечастая операция). Потому что надо внимательнее читать тему, уже отвечали! А именно, поменял я сетевуху, вполне "законная" операция, и что - мне теперь переставлять или перерегистрировать прогрогу, - бред.Название: Re: вычисление некоторого ~уникального id компа Отправлено: Igors от Сентябрь 27, 2009, 11:17 Потому что надо внимательнее читать тему, уже отвечали! А именно, поменял я сетевуху, вполне "законная" операция, и что - мне теперь переставлять или перерегистрировать прогрогу, - бред. Да, все привязки к железу будут иметь такую отрицательную сторону. Просто и хорошо привязаться к computer_name - и сделать и поддерживать легко. Но тогда надо убедить начальство, а это может быть невозможно :)Название: Re: вычисление некоторого ~уникального id компа Отправлено: yesrus от Октябрь 10, 2009, 23:48 Как из qt в винде можно получить серийный номер материнки\биоса ?
Название: Re: вычисление некоторого ~уникального id компа Отправлено: pastor от Октябрь 11, 2009, 11:21 Как из qt в винде можно получить серийный номер материнки\биоса ? Средствами Qt никак, юзай WinAPI |