
02.03.2009, 01:16
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
С нами:
10535289
Репутация:
107
|
|
Сообщение от 0x0c0de
1) получить бренд-индекс процессора (cpuid функции с 0x80000002 по 0x80000004)
2) получить серийный номер винта (http://forum.codenet.ru/archive/index.php/t-9911.html)
сложить 2 строки, взять от них хеш и получите уникальное число
Я просил попроще а не на как минимум 150 строчек кода  Мне не принципиально что число может менятся.Мне главное что бы возможность его повторения максимально стремилась к нулю.
Вот нашол код получения мака сетевой
Код:
//----------------------
typedef DWORD (CALLBACK* GetadAptInfo)(PIP_ADAPTER_INFO, PULONG);
HINSTANCE iphlpapi;
iphlpapi=LoadLibrary("iphlpapi.dll");
if (!iphlpapi)
{
ShowMessage( "Error of upload iphlpapi.dll!");
Abort();
}
GetadAptInfo GetAdaptersInfo;
GetAdaptersInfo = ( GetadAptInfo)
GetProcAddress( iphlpapi, "GetAdaptersInfo");
ULONG adapter_info_size = 0;
PIP_ADAPTER_INFO pip_a_i = NULL;
GetAdaptersInfo( pip_a_i, &adapter_info_size );
pip_a_i = (PIP_ADAPTER_INFO)
malloc( sizeof(char) * adapter_info_size);
if ( GetAdaptersInfo( pip_a_i, &adapter_info_size ))
{
ShowMessage("Error in GetAdaptersInfo!");
free(pip_a_i);
Abort();
}
while (pip_a_i)
{
Memo1->Lines->Add("Adapter's CLSID: " + (String)pip_a_i->AdapterName);
Memo1->Lines->Add ("Name; " + (String)pip_a_i->Desc_ription);
Memo1->Lines->Text = Memo1->Lines->Text + "MAC address: ";
for (int i = 0; i < pip_a_i->AddressLength; i++)
{
Memo1->Lines->Text = Memo1->Lines->Text + ((unsigned char)pip_a_i->Address[i]) + ".";
}
Memo1->Lines->Add("");
pip_a_i = pip_a_i->Next;
}
free(pip_a_i);
FreeLibrary(iphlpapi);
Но есть одна проблемка  У меня он почему то выводит информацию только по виртуальным сетевухам vmware  А реальной физической почему то невидет
|
|
|