Russian Qt Forum
Ноябрь 23, 2024, 08:38
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Дополнительные компоненты
>
вычисление некоторого ~уникального id компа
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: вычисление некоторого ~уникального id компа (Прочитано 20649 раз)
nn1317
Гость
вычисление некоторого ~уникального id компа
«
:
Сентябрь 13, 2009, 23:44 »
Доброй ночи)
Понадобилось в проекте (я лишь винтик в большой системе lol) для онлайн игры сделать чтобы у каждого компа был некоторый уникальный id. То что это жутко неудобно я знаю сам, но свыше сказали что надо.
Итак, давайте подумаем, на какие данные о железе мы можем опираться при создании такой метки по крайней мере под Win. На Lin как я понимаю много проще, если есть возможность читать /proc/*
По моему мнению:
1. Процессор: частота, название
2. Материнка: фирма, модель (а если не стоят драйвера, то что тогда?), чипсет
3. Оперативка: объем, в идеале производитель+модель
4. Номер винчестера (а если SSSD как на нетбуках? - есть ли у него номер?)
5. Теоретически, можно юзать MAC-адрес(приложение то сетевое!) - но уж больно легко он меняется:)
Хотелось бы услышать мысли об этом списке и о том как можно взять всю эту инфу о системе в Qt (и можно ли вообще, или нужно WinAPI юзать?) если есть немного кода - поделитесь, буду очень признателен)
Записан
spectre71
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #1 :
Сентябрь 14, 2009, 10:56 »
Цитата: nn1317 от Сентябрь 13, 2009, 23:44
Доброй ночи)
Понадобилось в проекте (я лишь винтик в большой системе lol) для онлайн игры сделать чтобы у каждого компа был некоторый уникальный id. То что это жутко неудобно я знаю сам, но свыше сказали что надо.
Итак, давайте подумаем, на какие данные о железе мы можем опираться при создании такой метки по крайней мере под Win. На Lin как я понимаю много проще, если есть возможность читать /proc/*
По моему мнению:
1. Процессор: частота, название
2. Материнка: фирма, модель (а если не стоят драйвера, то что тогда?), чипсет
3. Оперативка: объем, в идеале производитель+модель
4. Номер винчестера (а если SSSD как на нетбуках? - есть ли у него номер?)
5. Теоретически, можно юзать MAC-адрес(приложение то сетевое!) - но уж больно легко он меняется:)
Хотелось бы услышать мысли об этом списке и о том как можно взять всю эту инфу о системе в Qt (и можно ли вообще, или нужно WinAPI юзать?) если есть немного кода - поделитесь, буду очень признателен)
Либо "Материнка", либо "Винт"(на котором стоит система), все остальное точно не годиться, поскольку может меняться без переустановки системы и соответственно совта. Насколько помню у "Материнка" и "Винта" должны быть уникальные ID, которые можно использовать, но могу и ошибаться.
Записан
ecspertiza
Супер
Offline
Сообщений: 1053
С уважением, мастер конфетного цеха!
Re: вычисление некоторого ~уникального id компа
«
Ответ #2 :
Сентябрь 14, 2009, 11:10 »
Занимался я подобной темой, под виндой тебе нужно использовать WMI под линуксом я использовал dmidecoder вроде,
кроссплатформенно это реализовать нельзя, тебе нужно брать версию( или номер) биоса точно непомню, параметры винта брать нельзя ибо юзверь сменил винт и всё Id уже другой.
Записан
nn1317
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #3 :
Сентябрь 14, 2009, 11:16 »
Да, я вспомнил этот кошмар с WMI еще со времен когда был на WInAPI)))
Положим номер материнки. Если не стоят драйвера на нее, этот номер можно будет прочитать?
И будут ли у меня права на это, если пользователь не администратор компа?)
>параметры винта брать нельзя ибо юзверь сменил винт и всё Id уже другой.
много как бы чего нельзя брать из моего списка, но я же говорю - затея сама по себе тупиковая, но раз надо...
Записан
ecspertiza
Супер
Offline
Сообщений: 1053
С уважением, мастер конфетного цеха!
Re: вычисление некоторого ~уникального id компа
«
Ответ #4 :
Сентябрь 14, 2009, 11:16 »
Щас глянул исходники вот что я брал от BIOS
BIOSVersion
ReleaseDate
SerialNumber
SMBIOSMajorVersion
SMBIOSMinorVersion
вот вобщем и всё, ID уже будет по любому уникален. И не нужно заморачиваться насчёт процессора и т.д.
Ну мы тоже запускаем софт с такой фичей, без админских прав вроде работает.
Как видишь в данном случае номер мамки тебе и ненужен. А стало быть и заморачиваться ненужно.
«
Последнее редактирование: Сентябрь 14, 2009, 11:19 от ecspertiza
»
Записан
spectre71
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #5 :
Сентябрь 14, 2009, 12:04 »
Цитата: ecspertiza от Сентябрь 14, 2009, 11:16
Щас глянул исходники вот что я брал от BIOS
BIOSVersion
ReleaseDate
SerialNumber
SMBIOSMajorVersion
SMBIOSMinorVersion
вот вобщем и всё, ID уже будет по любому уникален. И не нужно заморачиваться насчёт процессора и т.д.
Ну мы тоже запускаем софт с такой фичей, без админских прав вроде работает.
Как видишь в данном случае номер мамки тебе и ненужен. А стало быть и заморачиваться ненужно.
1) Нет смысла брать в состав ключа те или иные значения версий, поскольку
- они не являются уникальными
- а при наличии уникального ID, он уже достаточен и значения версий просто мусор.
2) Если можно взять уникальный ID Материнки или HDD(на котором стоит система), то не надо заморачиваться , поскольку юзвер при ее смене однозначно должен переставить ПО, за исключением некоторых случаев(например копирование Ghost-ом и подобное, а при смене материнки еще и замена дров после копирования), на что можно смело забить и документировать в своей проге(что это запрещено или следует заново пройти регистрацию)
Записан
st0nx
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #6 :
Сентябрь 14, 2009, 12:21 »
ID процессора уникален.
Материнка и оперативка отпадает сразу. На счет жесткого не слышал.
Записан
spectre71
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #7 :
Сентябрь 14, 2009, 12:36 »
Цитата: st0nx от Сентябрь 14, 2009, 12:21
ID процессора уникален.
Материнка и оперативка отпадает сразу. На счет жесткого не слышал.
Процессор, память, сетевуха итд отпадают сразу!!! Поскольку при их смене нет необходимости переинсталлировать ПО!!!
Только материнка или диск(обязательно тот на котором система). Именно у них нужно искать уникальный ID
Записан
ecspertiza
Супер
Offline
Сообщений: 1053
С уважением, мастер конфетного цеха!
Re: вычисление некоторого ~уникального id компа
«
Ответ #8 :
Сентябрь 14, 2009, 12:43 »
1) Нет смысла брать в состав ключа те или иные значения версий, поскольку
- они не являются уникальными
- а при наличии уникального ID, он уже достаточен и значения версий просто мусор.
[/quote]
Тогда вполне хватит
ReleaseDate
SerialNumber
Но к харду я бы привязываться нестал бы.
Записан
ufna
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #9 :
Сентябрь 14, 2009, 12:50 »
Как пользователь, скажу - ненавижу привязки к оборудованию
)) Я в игрушки онлайновские играю с разных компов, чаще всего когда в гости к брату приезжаю. И чего делать?
Ересь это вообще в своем проявлении. Привязка к логину должна быть, как у всех и делается.
А если по сабжу - имхо, только биос или материнка. Иначе юзер будет вас ненавидеть
))
Записан
spectre71
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #10 :
Сентябрь 14, 2009, 13:18 »
Цитата: ecspertiza от Сентябрь 14, 2009, 12:43
Тогда вполне хватит
ReleaseDate
SerialNumber
ReleaseDate - не имеет смысла(не уникальна), я об этом только-что писал
Записан
spectre71
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #11 :
Сентябрь 14, 2009, 13:22 »
Цитата: ufna от Сентябрь 14, 2009, 12:50
Как пользователь, скажу - ненавижу привязки к оборудованию
)) Я в игрушки онлайновские играю с разных компов, чаще всего когда в гости к брату приезжаю. И чего делать?
Ересь это вообще в своем проявлении. Привязка к логину должна быть, как у всех и делается.
А если по сабжу - имхо, только биос или материнка. Иначе юзер будет вас ненавидеть
))
Задачи бывают разные, естественно что если возможно, лучше не делать привязки к железу!
А биос - часть материнки, так что можно использовать любой уникальный ID который можно
програмно
получить с незаменяемых микросхем материнской платы.
«
Последнее редактирование: Сентябрь 14, 2009, 13:26 от Spectre
»
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: вычисление некоторого ~уникального id компа
«
Ответ #12 :
Сентябрь 14, 2009, 13:36 »
Цитировать
А биос - часть материнки, так что можно использовать любой уникальный ID который можно програмно получить с незаменяемых микросхем материнской платы.
А можно перепрошить же!!!
Хотя можно это использовать в связке с sn процессора
+ sn видяхи + sn оперативы , чтобы уж точно не обманули!
Записан
ArchLinux x86_64 / Win10 64 bit
spectre71
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #13 :
Сентябрь 14, 2009, 13:44 »
Цитата: kuzulis от Сентябрь 14, 2009, 13:36
Цитировать
А биос - часть материнки, так что можно использовать любой уникальный ID который можно програмно получить с незаменяемых микросхем материнской платы.
А можно перепрошить же!!!
Хотя можно это использовать в связке с sn процессора
+ sn видяхи + sn оперативы , чтобы уж точно не обманули!
Препрошить уникальный серийный номер?
Когда вы научитесь читать с начала, по поводу процессора, видяхи итд уже говорилось
Записан
SABROG
Гость
Re: вычисление некоторого ~уникального id компа
«
Ответ #14 :
Сентябрь 14, 2009, 14:21 »
А привязка к железу нужна, чтобы если пользователя забанили, то он не смог бы перерегистрироваться сменив IP адрес или воспользовавшись прокси? Или чтобы отловить пользователей, которые с одного компа заводят много игровых аккаунтов?
«
Последнее редактирование: Сентябрь 14, 2009, 20:46 от SABROG
»
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...