Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизКак уникально идентифицировать компьютер? Найти похожие ветки
← →
nester (2003-10-07 22:21) [0]Как уникально идентифицировать компьютер? В общем то проблемма такая, что нужно присвоить каждому компу какойнибудь то ли номер то ли уникальную строку, так чтобы он был уникальным, причем при его присваивании изначально не знаешь все остальные номера? В голову прихочит может брать номер процессора? или номер внита? или может винда как-то присваивает уникально номер каждому компу?
В общем интересует участок кода, который как-то выдерет с компа его "уникальный" номер.
← →
Эдуард (2003-10-07 22:25) [1]По железу.
L(сериал мамки, биоса, видюхи, винта, МАК сетевой, и т.д.),
где L - некоторый оператор, напр. XOR;
Как определить сериалы - ищи в ФАКах, и форумах.
← →
nester (2003-10-07 23:02) [2]Дык вот в форуме и спрашиваю, не может ли кто привести участок кода?
← →
wl (2003-10-07 23:08) [3]"Будь проще и у тебе потянутся..."
используй такую уникальную штуку как GUID (CSLID et.cetera)
правда это будет работать только в том случае, если нужен просто уникальный абстрактный номер, не привязанный к железу компа, которое может к тому же в любой момент измениться(сетевая сгорела и т.д.)
лучше бы Вы задали вопрос поконкретнее в том смысле, как именно будут получаться номера в серверную программу, and so on
у процессоров нету номера, уже давно убрали имхо в связи со связанным с этим скандалом...
гуид по моему самая тема
← →
Soi (2003-10-08 06:25) [4]Можно вот так, у меня это пашет на работе на все 100%
_____________________________________________________
procedure TForm1.FormActivate(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
lmdbutton6.Enabled:=false;
//Определение серийного номера у винта
GetVolumeInformation("C:\",nil,0,@VolumeSerialNumber,MaximumComponentLength,FileSystemFlags,nil,0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + "-" + IntToHex(LoWord(VolumeSerialNumber), 4);
//Защита программы от запуска на других компах
//if (serialnumber<>"CC5D-42A8") and (getuserfromwindows<>"Marinka") and (getcomputernetname<>"mario") and (getntdomainname<>"aud11") then timer1.Enabled:=true;
end;
Функции приведены ниже
//Определение имени домена
function GetNTDomainName: string;
var
hReg: TRegistry;
begin
hReg := TRegistry.Create;
hReg.RootKey := HKEY_LOCAL_MACHINE;
hReg.OpenKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", false);
Result := hReg.ReadString( "DefaultDomainName" );
hReg.CloseKey;
hReg.Destroy;
end;
//Конец функции
//Вычисление имени компьютера
function GetComputerNetName: string;
var
buffer: array[0..255] of char;
size: dword;
begin
size := 256;
if GetComputerName(buffer, size) then
Result := buffer
else
Result := ""
end;
//Конец функции
//Вычисление имени пользователя
Function GetUserFromWindows: string;
Var
UserName : string;
UserNameLen : Dword;
Begin
UserNameLen := 255;
SetLength(userName, UserNameLen);
If GetUserName(PChar(UserName), UserNameLen) Then
Result := Copy(UserName,1,UserNameLen - 1)
Else
Result := "Unknown";
End;
//Конец функций
← →
nester (2003-10-08 08:33) [5]Спасибо, как раз воспользуюсь номером винта.
← →
Stas (2003-10-08 09:03) [6]Soi © (08.10.03 06:25) [4]
Класс !
← →
Vinter (2003-10-08 12:35) [7]Винт может завалиться, лучше уж MAC
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c