Аватар для S0lexV
21 / 21 / 7
Регистрация: 27.07.2011
Сообщений: 330

Получить уникальный идентификатор

23.05.2017, 20:01. Показов 4737. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, помогите получить какой либо уникальный идентификатор. Есть много похожих тем, про получение cpuid, mac адресу сетевой и тд. Но в cpuid скрыты последние символы и поэтому он не обеспечивает уникальности. Код такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
long s1, s2, s3;
wchar_t temp[MAX_PATH];
_asm
    {
        mov eax,01h
        xor edx,edx
        cpuid
        mov s1,eax
        mov eax,03h
        xor ecx,ecx
        xor edx,edx
        cpuid
        mov s2,edx
        mov s3,ecx
    }
wsprintf (temp, L"%08X-%08X-%08X",  s1, s2, s3);
//std::string str (temp, sizeof(temp));
sizeof(temp);
Результат типа 0001067A-00000000-00000000
По mac адресу не прокатывает, т.к. не на всех машинах есть сетевые карты. А код для получения ID жесткого диска я так и не нашел..
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2017, 20:01
Ответы с готовыми решениями:

Как получить уникальный идентификатор сеанса
1) Как получить уникальный идентификатор СЕАНСА 2) И правильно ли будет хранить этот идентификатор (если конечно его можно получить) в...

Как получить уникальный идентификатор (Hardware ID) HWID?
Всем привет :) Ранее все писал на C#, сейчас потихоньку учу C++ и хотел бы узнать, как получить hardware id? Чтобы программа...

Как получить уникальный идентификатор устройства (планшета)?
Как получить уникальный идентификатор устройства(планшета)? Подскажите готовое решение, пожалуйста.

29
 Аватар для S0lexV
21 / 21 / 7
Регистрация: 27.07.2011
Сообщений: 330
31.05.2017, 18:31  [ТС]
Студворк — интернет-сервис помощи студентам
возвращает метку системного диска:
C:

Добавлено через 33 секунды
на этом этапе все правильно
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,184
Записей в блоге: 3
31.05.2017, 18:31
а можно весь Ваш код по получению сирийника?
0
 Аватар для S0lexV
21 / 21 / 7
Регистрация: 27.07.2011
Сообщений: 330
31.05.2017, 18:32  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 STORAGE_PROPERTY_QUERY query;
 std::auto_ptr<DWORD> dwBytesReturned ( new DWORD);
 std::auto_ptr<STORAGE_DEVICE_DESCRIPTOR> buffer( new STORAGE_DEVICE_DESCRIPTOR[5]);
 
 
 String sistem_hdd ;
 sistem_hdd = getenv("SYSTEMDRIVE");   //Получаем диск на котором стоит ОС
 ShowMessage(sistem_hdd);
 sistem_hdd = "\\\\."+sistem_hdd;
 
 
 HANDLE hDrive = CreateFile(sistem_hdd.c_str(), 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
 
 query.PropertyId = StorageDeviceProperty;
 query.QueryType = PropertyStandardQuery;
 
 DeviceIoControl(hDrive, IOCTL_STORAGE_QUERY_PROPERTY, &query, sizeof(query),buffer.get(), 500, dwBytesReturned.get()  , NULL);
 CloseHandle ( hDrive );
 
 if (buffer->SerialNumberOffset != 0)
     {
      lb->Items->Add("SerialNumber: " + String(((char*)buffer.get() + buffer->SerialNumberOffset)));
     }
заголовок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <Registry.hpp >
#include <memory>
#include <Winioctl.h>
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
String s;
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,184
Записей в блоге: 3
31.05.2017, 18:37
ааа, сорян , добавьте два слеша после точки =) Просто форум съел их, видимо служебные символы.

C++
1
sistem_hdd = "\\\\.\\"+sistem_hdd;
1
 Аватар для S0lexV
21 / 21 / 7
Регистрация: 27.07.2011
Сообщений: 330
31.05.2017, 18:41  [ТС]
да, спасибо все получилось! Буду тестить
0
 Аватар для S0lexV
21 / 21 / 7
Регистрация: 27.07.2011
Сообщений: 330
05.07.2017, 18:21  [ТС]
Dinkin, тестил на win 7 все отлично работает. Тестил примерно на 20 машинах.
А вот когда дело дошло до 10-ки началось.... Вообщем сначала на виртуальной машине результат такого вида:
VBd283c29e-58f7658b. Ну да ладно, на виртуалке свои заморочки. А вот реальная машина на 10-ке выдала следующее:
_________66TZTLTKT
Знак "__" это пробелы. Что может быть не так ?
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,184
Записей в блоге: 3
05.07.2017, 21:42
S0lexV, На сколько мне известно, то это нормально...особенно на старых WD с емкостью 320гб и 500гб. То есть они к примеру выделяют под сирийник 20 символов, и постепенно эти пробелы заполняются. На всяк попробуйте перепроверить через AIDA к примеру.
0
 Аватар для S0lexV
21 / 21 / 7
Регистрация: 27.07.2011
Сообщений: 330
06.07.2017, 08:58  [ТС]
проверю через HDDTune
меня еще беспокоит тот фактор что чем больше пробелов тем больше вероятность совпадения с уже существующим ID..
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,184
Записей в блоге: 3
06.07.2017, 11:57
Цитата Сообщение от S0lexV Посмотреть сообщение
проверю через HDDTune
Ну и что показала программа?

Пробелы не меняются в процессе жизни hdd..их можно расценивать как нули)) Другое дело если Вы вручную решили преобразовать полученный код, тогда пробелов может и не быть.

Цитата Сообщение от S0lexV Посмотреть сообщение
меня еще беспокоит тот фактор что чем больше пробелов тем больше вероятность совпадения с уже существующим..
Производители уверяют, что этого не может быть.

Добавлено через 17 секунд
Цитата Сообщение от S0lexV Посмотреть сообщение
проверю через HDDTune
Ну и что показала программа?

Пробелы не меняются в процессе жизни hdd..их можно расценивать как нули)) Другое дело если Вы вручную решили преобразовать полученный код, тогда пробелов может и не быть.

Цитата Сообщение от S0lexV Посмотреть сообщение
меня еще беспокоит тот фактор что чем больше пробелов тем больше вероятность совпадения с уже существующим..
Производители уверяют, что этого не может быть.
0
 Аватар для S0lexV
21 / 21 / 7
Регистрация: 27.07.2011
Сообщений: 330
06.07.2017, 12:12  [ТС]
эта машина удаленная, результат узнаю чуть позже
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2017, 12:12

Как получить уникальный идентификатор девайса через SetupDiGetDeviceInterfaceDetail
Всем привет, у меня есть функция, которая по заданному интерфейсному guid пробегается по всем девайсам, предоставляющим этот интерфейс и...

Уникальный идентификатор
Здравствуйте. Я в этом деле начинающий и многого не знаю. Так вот у меня программа на андроиде которая каждую минуту(к примеру)...

уникальный идентификатор
Помогите с задачей. Есть форма стандартная форма входа. При входе перекидывает на страницу -форму. Как получить aspnet_User(UserId) из ...

Уникальный идентификатор
Здравствуйте! Учусь писать приложения для UWP. Посоветуйте, пожалуйста, как на практике лучше всего (правильнее!) организовать...

Уникальный идентификатор
Создал таблицу CREATE TABLE . ( UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, NCHAR (10) NULL, PRIMARY KEY...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru