using System; using System.IO; using System.Management; using System.Runtime.InteropServices; using System.Text.RegularExpressions; namespace IdTest { internal class Program { private static void Main(string[] args) { Console.WriteLine(GetCPUNumber()); } public static string GetCPUNumber() { var result = string.Empty; if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { result = Regex.Match(File.ReadAllText("/proc/cpuinfo"), @"Serial\s*:\s*([^\s]+)").Groups[1].Value; } else { var mc = new ManagementClass("win32_processor"); var moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (result == "") { result = mo.Properties["processorID"].Value.ToString(); break; } } } return result.ToLower(); } } }