得到本機的MAC,CPU個數,CPU係數,硬盤和內存大小

/// <summary>
        /// 获取本机的MAC地址
        /// </summary>
        /// <returns></returns>
        public static string GetMACString()
        {
            ManagementClass mAdapter = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection mo = mAdapter.GetInstances();
            foreach (ManagementBaseObject m in mo)
            {
                if ((bool)m["IpEnabled"] == true)
                {
                    return m["MacAddress"].ToString();
                }
            }
            mo.Dispose();

            return null;
            //ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            //ManagementObjectCollection moc = mc.GetInstances();
            //foreach (ManagementObject mo in moc)
            //{
            //    //如果没有启用IP设置的网络设备则跳过
            //    if (!(bool)mo["IPEnabled"])
            //        continue;

            //    // 获取属性
            //    string caption = mo["Caption"].ToString();              //名称
            //    string[] addresses = (string[])mo["IPAddress"];         //IP地址
            //    string[] subnets = (string[])mo["IPSubnet"];            //子网掩码
            //    string[] gateways = (string[])mo["DefaultIPGateway"];   //网关
            //    string[] dnses = (string[])mo["DNSServerSearchOrder"];  //DNS

            //    ManagementBaseObject newIP;

            //    // 修改IP及子网掩码
            //    newIP = mo.GetMethodParameters("EnableStatic");
            //    newIP["IPAddress"] = new string[] { "192.168.2.51" };
            //    newIP["SubnetMask"] = new string[] { "255.255.255.0" }; //修改IP同时,需要填写子网掩码
            //    mo.InvokeMethod("EnableStatic", newIP, null);

            //    // 设置网关地址
            //    newIP = mo.GetMethodParameters("SetGateways");
            //    newIP["DefaultIPGateway"] = new string[] { "192.168.2.1" };
            //    mo.InvokeMethod("SetGateways", newIP, null);

            //    // 设置DNS
            //    newIP = mo.GetMethodParameters("SetDNSServerSearchOrder");
            //    newIP["DNSServerSearchOrder"] = new string[] { "192.168.1.10" };
            //    mo.InvokeMethod("SetDNSServerSearchOrder", newIP, null);

        }

        /// <summary>
        /// 获取CPU的个数
        /// </summary>
        /// <returns></returns>
        public static int GetCpuCount()
        {
            try
            {
                using (ManagementClass mCpu = new ManagementClass("Win32_Processor"))
                {
                    ManagementObjectCollection
                    cpus = mCpu.GetInstances();
                    return cpus.Count;
                }
            }
            catch
            {

            }

            return -1;
        }

        /// <summary>
        /// 获取CPU的频率这里之所以使用string类型的数组,主要是因为cpu的多核
        /// </summary>
        /// <returns></returns>
        public static string[] GetCpuMHZ()
        {
            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection cpus = mc.GetInstances();
            string[] mHz = new string[cpus.Count];
            int c = 0;
            ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor");
            foreach (ManagementObject mo in mySearch.Get())
            {
                mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString();
                c++;
            }
            mc.Dispose();
            mySearch.Dispose();

            return mHz;
        }

        /// <summary>
        /// 获取硬盘的大小
        /// </summary>
        /// <returns></returns>
        public static string GetSizeOfDisk()
        {
            ManagementClass mc = new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection moj = mc.GetInstances();
            foreach (ManagementObject m in moj)
            {
                return m.Properties["Size"].Value.ToString();
            }

            return "-1";
        }

        /// <summary>
        /// 获取内存的大小
        /// </summary>
        /// <returns></returns>
        public static string GetSizeOfMemery()
        {

            ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
            ManagementObjectCollection moc = mc.GetInstances();
            double sizeAll = 0.0;
            foreach (ManagementObject m in moc)
            {
                if (m.Properties["TotalVisibleMemorySize"].Value != null)
                {
                    sizeAll += Convert.ToDouble(m.Properties["TotalVisibleMemorySize"].Value.ToString());
                }
            }
            mc = null;
            moc.Dispose();
            return sizeAll.ToString();
        }
时间: 2024-10-08 07:43:38

得到本機的MAC,CPU個數,CPU係數,硬盤和內存大小的相关文章

Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数

文章转载:http://blog.snsgou.com/post-793.html 1.查看物理CPU的个数 [[email protected] ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l1 2.查看逻辑CPU的个数 [[email protected] ~]# cat /proc/cpuinfo |grep "processor"|wc -l4 3.查看CPU是几核(即,核心数) [[em

主流手机CPU与电脑CPU的差距又多大

如今,主流手机CPU都是四核.八核,联发科甚至开始研发十核了,而且主频也越来越高.因此,不少人认为手机CPU已经能够媲美电脑CPU了. 其实过CPU性能不能只看核数和主频,下面小编将从架构.工艺.主频.核心等方面,为大家比较一下手机与电脑CPU的差别,看看差距到底有多大. 一.架构差异 架构只相当于一座建筑的框架,是最基本也是极为重要的部分.电脑CPU的架构有X86.X64等,而手机CPU主流是ARM架构,从ARM7.ARM9发展到Cortex-A7.A8.A9.A12.A15. PC机是冯.诺

使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)

不过必须XP SP3以上才行.所有API大全: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx -------------------------------------------------------------------------------- 现在多核处理器已经很普及了,市场主流是双核处理器,还有4核.8核等高端产品.而且Intel推广了超线程技术(Hyper-Threa

cpu利用率和cpu 队列

SIP的第四期结束了,因为控制策略的丰富,早先的的压力测试结果已经无法反映在高并发和高压力下SIP的运行状况,因此需要重新作压力测试.跟在测试人员后面做了快一周的压力测试,压力测试的报告也正式出炉,本来也就算是告一段落,但第二天测试人员说要修改报告,由于这次作压力测试的同学是第一次作,有一个指标没有注意,因此需要修改几个测试结果.那个没有注意的指标就是load average,他和我一样开始只是注意了CPU,内存的使用状况,而没有太注意这个指标,这个指标与他们通常的限制(10左右)有差别.重新测

Linux下区分物理CPU、逻辑CPU和CPU核数

判断依据: 一个物理封装的CPU(通过physical id区分判断)可以有多个核(通过core id区分判断). 而每个核可以有多个逻辑cpu(通过processor区分判断). 一个核通过多个逻辑cpu实现这个核自己的超线程技术. cpu cores 条目包含位于相同物理封装中的内核数量. siblings 条目列出了位于相同物理封装中的逻辑处理器的数量. // proc文件用processor做索引,是因为processor是拥有其下所列所有信息的最小单位.方便查看细化信息. //例如如果

查看物理cpu & 核数 & 逻辑cpu个数

# 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l grep -c "model name" /p

使用performance monitor 查看 每一个cpu core的cpu time

使用performance monitor 查看 每一个cpu core的cpu time: 打开performance monitor,添加 counter 如下 运行一段cpu bound 的代码: cpu time瞬间彪到100% 结束代码运行.

获取当前IOS设备的CPU型号,CPU核数,GPU,GPU核数,屏幕分辨率,屏幕尺寸,PPI等信息

今天和大家一起分享下如何获取当前IOS设备的CPU型号,CPU核数,GPU,GPU核数,屏幕分辨率,屏幕尺寸,PPI等信息.相信各位发现通过苹果官方开放的API想要获取当前设备以上的一些信息似乎做不到.如今苹果的硬件更新速度相当的快,还要在网上发现有有心人收集了所有已发布苹果设备的相关设备信息,且不定期回去更新.详情请见:Blake's iOS Device Specifications Grid http://www.blakespot.com/ios_device_specification

Linux性能优化从入门到实战:04 CPU篇:CPU使用率

??CPU使用率是单位时间内CPU使用情况的统计,以百分比方式展示. $ top top - 11:46:45 up 7 days, 11:52, 1 user, load average: 0.00, 0.01, 0.00 Tasks: 198 total, 1 running, 197 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st K