Конференция "WinAPI" » Уникальность компа [D7, WinXP]
 
  • apic (17.01.12 16:28) [0]
    Как программно определить уникальность рабочей станции? Ну к примеру комплектующим компа...
  • brother © (17.01.12 17:13) [1]
    что подразумевать под уникальностью?
    имхо, каждый комп уникален, но собран из стандартных комплектующих...
  • Eraser © (17.01.12 18:36) [2]
    > [0] apic   (17.01.12 16:28)

    по серийным номерам.
  • Дмитрий (18.01.12 09:50) [3]
    В общем случае - никак. Если "я его слепила из того что было" - тогда есть вероятность, что у соседа за стенкой нет точно такой же MB, CPU, Video, такого же обьема памяти...
    Если это что-нибудь из Kraftway,Depo,Excimer или из "местных брендов" (в каждом крупном городе есть такие в крупных компьютерных салонах, в Екатеринбурге я насчитал штуки 4) - тогда сборка поставлена на поток и "серийник" можно вытянуть разве что из HDD, да и то (по-моему) с Вистой или Вынь7 есть некоторые проблемы.
  • Dimka Maslov © (19.01.12 09:45) [4]
    Проще всего по МАС адресу сетевой карты или любого другого ус-ва.
  • Дмитрий (19.01.12 15:32) [5]
    Dimka Maslov : а есть код, работающий под всеми Windows ? Кстати, один распространенный способ получения MAC через NB30 работает, пока в разъеме сетевой карты есть подключенный к коммутатору кабель. Кабель выключаешь - фигвам.
    "или любого другого ус-ва" - а вот это не понял...
  • Dimka Maslov © (19.01.12 15:42) [6]
    UuidCreateSequential работает под всеми осями
  • Dimka Maslov © (19.01.12 15:43) [7]

    > "или любого другого ус-ва" - а вот это не понял...


    Синезуб или вай-фай тоже имеют МАС-адрес
  • Дмитрий (20.01.12 08:07) [8]
    Не нужно забывать, что рабочая станция может не иметь ни сетевой карты, ни синезуба, ни вайфая. Могу привести с десяток примеров, где такие компы применяются.
    Поэтому, без конкретики, в общем случае, задача не имеет решения.

    Внешнее USB-устройство с "зашитым" уникальным номером и средства доступа к этому устройству (API) - тогда, может быть, уже будет "теплее"...
  • apic (21.01.12 09:17) [9]
    Насчет МАС-адресов сетевух, сам лично встречал случае, когда на китайчком железе они, во первых не уникальны, во вторых изменяются после перезагрузке. На счет конкретики комплектации, это да, все, что оперативно можно снять, откидываем. Остается - чипсет (мат плата), BIOS, проц, память оперативная, жесткий диск, сетевая карта, видеокарта, ну в принципе и все, всего остального можно считать, что нету.
  • Дмитрий Комаров © (23.01.12 12:21) [10]
    Для этого используется макадрес.
    http://ru.wikipedia.org/wiki/MAC-%D0%B0%D0%B4%D1%80%D0%B5%D1%81#.D0.A1.D0.BC.D0.B5.D0.BD.D0.B0_MAC-.D0.B0.D0.B4.D1.80.D0.B5.D1.81.D0.B0
    Любой другой способ будет хуже.
  • Дмитрий (23.01.12 15:10) [11]
    [10]: Для ЧЕГО используется ?
    Сами-то хоть указанную ссылку читали ? И как насчёт аргументов из [8] ?
  • Дмитрий Комаров © (23.01.12 16:32) [12]

    > Для ЧЕГО используется


    В широковещательных сетях (таких, как сети на основе Ethernet) MAC-адрес позволяет уникально идентифицировать каждый узел сети и доставлять данные только этому узлу

    .

    если не подходит - хотелось бы услышать непосредственно описание задачи.
  • Дмитрий (24.01.12 10:42) [13]
    "уникально идентифицировать каждый узел сети "
    "программно определить уникальность рабочей станции"

    "Рабо́чая ста́нция (англ. workstation) — комплекс аппаратных и программных средств, предназначенных для решения определённого круга задач.
    Рабочая станция как место работы специалиста представляет собой полноценный компьютер или компьютерный терминал (устройства ввода-вывода, отделённые и часто удалённые от управляющего компьютера), набор необходимого ПО, по необходимости дополняемые вспомогательным оборудованием: печатающее устройство, внешнее устройство хранения данных на магнитных и/или оптических носителях, сканер штрих-кода и пр.
  • RWolf © (24.01.12 15:41) [14]
    стесняюсь спросить, а сетевого имени недостаточно?
  • brother © (24.01.12 18:35) [15]
    сети может вообще не быть, а имя уж тем более может быть не уникально...
  • Dimka Maslov © (24.01.12 23:07) [16]

    >  И как насчёт аргументов из [8] ?


    Адрес, использующийся в функции UuidCreateSequential будет браться из "железа", а не из перепрошиваемого "драйвера", иначе не удасться добиться "глобальной уникальности" идентификатора.
  • apic (25.01.12 05:59) [17]
    Поясните пожалуйста как мне может помочь UuidCreateSequential и как мне им воспользоваться что бы она мне помогла.
  • Dimka Maslov © (25.01.12 12:34) [18]

    > apic   (25.01.12 05:59) [17]


    Данная функция (её заголовка нет, надо подключать отдельно) выдаёт глобально уникальный идентификатор GUID, в который в явном виде входит МАС-адрес сетевой карты):

    function GetPermanentEthernetAddress: String;
    var
     Func: function(var guid: TGUID): Integer stdcall;
     Lib: HINST;
     R: Integer;
     Guid: TGuid;
    begin
     Result := '';
     Lib := LoadLibrary('RPCRT4.DLL');
     Func := GetProcAddress(Lib, 'UuidCreateSequential');
     if Assigned(@Func) then begin
       R := Func(Guid);
       if R = 0 then begin
         for R := 2 to 7 do Result := Result + IntToHex(Guid.D4[R], 2);
       end;
     end;
    end;

  • Дмитрий (25.01.12 12:50) [19]
    [16] : и "железный" MAC при большом желании можно сменить
    [17] : А может быть все-таки поставленную задачу конкретизировать ?

    "баловался" я раньше таким, вычислял хэши уникальных данных комплектующих, складывал из них последовательность и получал уникальный номер. Но с появлением новых ОС и новых интерфейсов, обязательного условия запускать прогу под админом и др. и пр. - плюнул и забыл. Кстати, всё есть в реестре, в XP - ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum. Ищите да обрящете.
 
Конференция "WinAPI" » Уникальность компа [D7, WinXP]
Есть новые Нет новых   [134430   +4][b:0][p:0.001]