/* 创建者:菜刀居士的博客

 * 创建日期: 2014年08月31号

 * 功能:获取电脑的相关信息

 *

 */

namespace Net.String.ConsoleApplication

{

    using System;

    using System.Management;

public class ComputerHelper

    {

        /// <summary>

        /// 获取CPU序列号代码

        /// </summary>

        public static string GetCPUId()

        {

            return ExecInfo(() => {

                ManagementClass mc = new ManagementClass("Win32_Processor");

                ManagementObjectCollection moc = mc.GetInstances();

                foreach (ManagementObject mo in moc)

                {

                    return mo.Properties["ProcessorId"].Value.ToString();

                }

                return string.Empty;

            });

        }

/// <summary>

        /// 获取网卡Mac地址

        /// </summary>

        public static string GetMacAddress()

        {

            return ExecInfo(() => {

                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

                ManagementObjectCollection moc = mc.GetInstances();

                foreach (ManagementObject mo in moc)

                {

                    if ((bool)mo["IPEnabled"] == true)

                    {

                        return mo["MacAddress"].ToString();

                    }

                }

                return string.Empty;

            });

        }

/// <summary>

        /// 获取硬盘ID

        /// </summary>

        public static string GetDiskID()

        {

            return ExecInfo(() => {

                ManagementClass mc = new ManagementClass("Win32_DiskDrive");

                ManagementObjectCollection moc = mc.GetInstances();

                foreach (ManagementObject mo in moc)

                {

                    return (string)mo.Properties["Model"].Value;

                }

                return string.Empty;

            });

        }

/// <summary>

        /// 操作系统的登录username

        /// </summary>

        public static string GetUserName()

        {

            return ExecInfo(() => {

                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");

                ManagementObjectCollection moc = mc.GetInstances();

                foreach (ManagementObject mo in moc)

                {

                    return mo["UserName"].ToString();

                }

                return string.Empty;

            }); 

        }

/// <summary>

        /// PC类型

        /// </summary>

        public static string GetSystemType()

        {

            return ExecInfo(() =>

            {

                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");

                ManagementObjectCollection moc = mc.GetInstances();

                foreach (ManagementObject mo in moc)

                {

                    return mo["SystemType"].ToString();

                }

                return string.Empty;

            });

        }

/// <summary>

        /// 物理内存

        /// </summary>

        public static string GetTotalPhysicalMemory()

        {

            return ExecInfo(() =>

            {

                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");

                ManagementObjectCollection moc = mc.GetInstances();

                foreach (ManagementObject mo in moc)

                {

                    return mo["TotalPhysicalMemory"].ToString();

                }

                return string.Empty;

            });

        }

/// <summary>

        /// 计算机名称

        /// </summary>

        public static string GetComputerName()

        {

            return ExecInfo(() => {

                return System.Environment.GetEnvironmentVariable("ComputerName");

            });

        }

private static string ExecInfo(Func<string> func)


        {

            string result = string.Empty;

            try

            {

                result = func();

            }

            catch

            {

                return "unknow";

            }

            finally { }

            return result;

        }

/// <summary>

        /// 得到clientIP地址

        /// </summary>

        public string GetClientIdAddress()

        {

            string ip = string.Empty;

            try

            {

                if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_ForWARDED_For"] == null)

                    ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();

                else

                    ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_ForWARDED_For"].ToString();

if (string.IsNullOrEmpty(ip))

                {

                    ip = System.Web.HttpContext.Current.Request.UserHostAddress;

                }

            }

            catch { ip = "1.1.1.1"; }

            return ip;

        }

   

       

    }

}

C#获取电脑的相关信息的更多相关文章

  1. 获取Java系统相关信息

    package com.test; import java.util.Properties; import java.util.Map.Entry; import org.junit.Test; pu ...

  2. .Net中获取打印机的相关信息

    原文:.Net中获取打印机的相关信息 新项目中牵涉到对打印机的一些操作,最重要的莫过于获取打印机的状态,IP等信息,代码量不大,但是也是自己花了一点时间总结出来的,希望能帮助需要的朋友. Printe ...

  3. Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息

    详情请看:Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息 在项目中需要获取到当前设备,例如手机的ID,联网状态,等,然后这个Cordova里有这个插件可以用, ...

  4. C# -- 使用System.Environment获取电脑的相关属性

    使用System.Environment获取电脑的相关属性 1.使用System.Environment获取电脑的相关属性(入门案例) static void Main(string[] args) ...

  5. 通过request对象获取客户端的相关信息

    通过request对象获取客户端的相关信息 制作人:全心全意 通过request对象可以获取客户端的相关信息.例如HTTP报头信息.客户信息提交方式.客户端主机IP地址.端口号等等. request获 ...

  6. NX二次开发-UF_ASSEM_ask_component_data获取装配部件的相关信息

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_assem.h> ], void* user_ ...

  7. $_SERVER['HTTP_USER_AGENT']:在PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息

    在PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息. 我机器:操作系统:WIN7旗舰版 64操作系统 以下为各个浏览器下$_SERVER['HTT ...

  8. JAVA如何利用Swiger获取Linux系统电脑配置相关信息

    最近开发java应用程序,涉及到获取Linux服务器相关配置的问题,特地网上搜寻了下,采用Swiger包可以直接获取,再次小结一下,以便于以后能方便使用,也便于其他童鞋们学习. 推荐大家参考链接:ht ...

  9. ManagementClass类解析和C#如何获取硬件的相关信息

    在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. 现在先来介绍一下ManagementClass类,首先看一下类的继承 ...

随机推荐

  1. python-数字类型内置方法

    数字类型内置方法 为什么要有数据类型? 数据是用来表示状态的,不同的状态就应该用不同的数据类型去表示 整型(int) 用途:年龄.号码.银行卡号等 定义:可以使用int()方法将纯数字的字符串转换为十 ...

  2. python 学习总结4

    数字类型及操作 一.整数类型 (1)python中的整数与数学中的概念是一致的,可以正也可以负,没有取值范围.   pow(x,y)函数是计算x的y次幂,想计算多大就多大. (2)在整数类型中有四种进 ...

  3. Python-约瑟夫环

    n个人(以编号0,1,2,3...n-1分别表示)围坐在一张圆桌周围.从编号为0的人开始报数1,数到m的那个人出列: 他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆桌周围的 ...

  4. 9-Python基础知识-day1

    Python基础知识-day1 Python 2 和Python 3 的区别: Python2 源码不标准,混乱,重复代码多:#-*-encoding:utf8 -*- 解决python2显示中文的问 ...

  5. jdbc 和 hibernate 比较

    相同点:都是数据库操作的中间件,都不是线程安全需要即时关闭,都可以对数据库操作进行显式处理. 不同:jdbc使用标准sql语言,hibernate使用HQL,操作对象jdbc直接操作数据传送到数据库, ...

  6. joyoi1864 守卫者的挑战

    #include <algorithm> #include <iostream> #include <cstdio> using namespace std; in ...

  7. nodejs 如何发送一个带JSON的GET请求?

    GET /megacorp/employee/_search { "aggs" : { "all_interests" : { "terms" ...

  8. 【编程工具】如何用Sublime Text3建立本地服务器和站点

    不久前,我学习了使用DW(DreamWare CS6)这款软件来学习HTML和制作静态网页,但是总觉得这款图形化软件不太适合我这种喜欢写代码的码农,所以最终我使用的是Sublime Text3这款软件 ...

  9. 【软考5】解释型 or 编译型

    导读:在上篇博客中,我们了解到,目前的编码语言经过不断的发展,已经经历了机器语言--汇编语言--高级语言的过程.虽然我们的编码语言在不停的升级,但作为计算机来说,它始终是一个只能理解0和1构成的机器语 ...

  10. Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) 菜鸡只会ABC!

    Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) 全场题解 菜鸡只会A+B+C,呈上题解: A. Bear and ...