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

 * 创建日期: 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. LeetCode(90) Subsets II

    题目 Given a collection of integers that might contain duplicates, nums, return all possible subsets. ...

  2. PAT Basic 1053

    1053 住房空置率 在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能 ...

  3. return_url notify_url

    return_url对返回订单状态进行更新和判断,notify_url为异步调动页面,需要先判断notify_url里是否对订单数据做过处理,避免重复更新数据,然后如果用户付款成功直接关闭页面,会造成 ...

  4. awk支持多个记录分隔符的写法

    awk的-F参数可以指定新的记录分隔符,有些时候可能需求指定多个分隔符,比如下面的内容 width:720 height:360 如果需要取出width和height后面的值的话,一般大家会这样做,即 ...

  5. android 之 Dialog

    Android平台下对话框主要有普通对话框.选项对话框.单选多选对话框.进度对话框.日期对话框.时间对话框等. 在程序中通过开发回调方法onCreateDialog来完成对话框的创建,该方法需要传入代 ...

  6. IS-IS IGP

    is-is  是igp的一种    属于osi的协议 OSI的三层是网络层      包含两种服务  一种是面向连接服务CONS       另一种是无连接服务CLNS CLNS中包含CLNP     ...

  7. POJ 2403 Hay Points

    Hay Points Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5735   Accepted: 3695 Descri ...

  8. POP-一个点击带有放大还原的动画效果

    原理 监听屏幕的点击事件 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)ev ...

  9. BZOJ3130 [Sdoi2013]费用流 【网络流 + 二分】

    题目 Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络流方案必须满足:(1)每 ...

  10. 圆桌聚餐(cogs 729)

    «问题描述:假设有来自m 个不同单位的代表参加一次国际会议.每个单位的代表数分别为ri(i=1,2,3...m), .会议餐厅共有n张餐桌,每张餐桌可容纳c i(i=1,2...n) 个代表就餐.为了 ...