取得设备网卡的MAC地址、CPUID和硬盘的卷标号

来源:互联网 发布:sftp 指定端口 编辑:程序博客网 时间:2024/05/02 00:19

using System;
using System.Management;

namespace SystemInfo
{
    /// <summary>
    /// 读取设备信息
    /// </summary>
    public class Machine
    {
        private ManagementClass mc;
        private ManagementObjectCollection moc;
        private ManagementObject disk;

        /// <summary>
        /// 获取CPUID
        /// </summary>
        /// <returns></returns>
        public static string GetCPUID()
        {
            string str = string.Empty;
            ManagementObjectCollection instances = new ManagementClass("Win32_Processor").GetInstances();
            foreach (ManagementObject obj2 in instances)
            {
                if (str == string.Empty)
                {
                    str = obj2.Properties["ProcessorId"].Value.ToString();
                }
            }
            return str;
        }

        /// <summary>
        /// 取得设备网卡的MAC地址
        /// </summary>
        public string GetNetCardMacAddress()
        {
            mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            moc = mc.GetInstances();
            string str = "";
            foreach (ManagementObject mo in moc)
            {
                if ((bool)mo["IPEnabled"] == true)
                    str = mo["MacAddress"].ToString();

            }
            return str;
        }

        /// <summary>
        /// 取得设备硬盘的卷标号
        /// </summary>
        /// <returns></returns>
        public string GetDiskVolumeSerialNumber()
        {
            mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            disk = new ManagementObject("win32_logicaldisk.deviceid=/"c:/"");
            disk.Get();
            return disk.GetPropertyValue("VolumeSerialNumber").ToString();
        }
    }
}

原创粉丝点击