سؤال

أنا أبحث عن وسيلة للحصول على معرف كمبيوتر فريد.

وفق هذا المشنور لا يمكنني استخدام معرف المعالج لهذا الغرض. هل يمكنني أخذ معرف اللوحة الأم؟ ما هي أفضل طريقة لتحديد الكمبيوتر؟

هل كانت مفيدة؟

المحلول

كما قلت ، لن يكون معرف وحدة المعالجة المركزية فريدة من نوعها ، ولكن يمكنك استخدامه مع معرف أجهزة آخر لإنشاء مفتاحك الفريد الخاص بك.

الجمعية المرجعية System.Management

لذا ، استخدم هذا الرمز للحصول على معرف وحدة المعالجة المركزية:

string cpuInfo = string.Empty;
ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)
{
     cpuInfo = mo.Properties["processorID"].Value.ToString();
     break;
}

ثم استخدم هذا الرمز للحصول على معرف HD:

string drive = "C";
ManagementObject dsk = new ManagementObject(
    @"win32_logicaldisk.deviceid=""" + drive + @":""");
dsk.Get();
string volumeSerial = dsk["VolumeSerialNumber"].ToString();

بعد ذلك ، يمكنك فقط الجمع بين هذين المسلسلتين للحصول على فريدة من نوعها لهذا الجهاز:

string uniqueId = cpuInfo + volumeSerial;

من الواضح أنه كلما زاد عدد مكونات الأجهزة التي تحصل عليها ، زادت التفرد. ومع ذلك ، فإن فرص نفس الماكينة التي تحتوي على مسلسل متسلسل وقرص صلبة متطابقة في وحدة المعالجة المركزية والقرص الصلب ضئيلة بالفعل إلى لا شيء.

نصائح أخرى

معرف اللوحة الأم هو معرف فريد من نوعه. خيار آخر هو استخدام عنوان MAC لبطاقات الشبكة ، وهو فريد من نوعه إلى حد كبير.

عنوان MAC لمحول الشبكة؟ معرف الأمان (SID) لتثبيت نظام التشغيل Windows OS؟ (على افتراض أن النوافذ التي تتعامل معها) هل يمكنك فقط إنشاء GUID لكل جهاز كمبيوتر؟

ماذا تحاول انجازه بالضبط؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top