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

 * 创建日期: 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日志(logging)模块,shelve,sys模块

    菜鸟学python第十七天 1.logging 模块 logging模块即日志记录模块 用途:用来记录日志 为什么要记录日志: 为了日后复查,提取有用信息 如何记录文件 直接打开文件,往里写东西 直接 ...

  2. LeetCode(79) Word Search

    题目 Given a 2D board and a word, find if the word exists in the grid. The word can be constructed fro ...

  3. 【C#】【数据结构】002-线性表:单链表

    C#数据结构:单链表 1.自定义单链表结构: 单链节点类 using System.Collections; using System.Collections.Generic; using Unity ...

  4. ThreadLocalClient小应用

    今天遇到hibernate.find就会进行权限配置,如果某处想要跳过权限配置,则可以如下 ThreadLocalClient.get().envParamMap.put(DataAuthority. ...

  5. SQLite Database Browser 2.0使用方法

    在网上找一个SQLITE查看器 这个查看器叫做:www.jb51.net/database/118822.html 这个查看器可以新建SQLITE文件数据库,可以建立表索引,写SQL语句,编辑表数据 ...

  6. enq: TX - row lock contention“等待事件的处理

      enq: TX - row lock contention“等待事件的处理   session1: SQL> conn scott/triger Connected. SQL> CRE ...

  7. bootshiro---开源的后台管理框架--基于springboot2+ shiro+jwt的真正rest api资源无状态认证权限管理框架,开发人员无需关注权限问题,后端开发完api,前端页面配置即可

    https://gitee.com/tomsun28/bootshiro

  8. 九度oj 题目1208:10进制 VS 2进制

    题目描述: 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数.    例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10 ...

  9. HDU——2647Reward(DFS或差分约束)

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  10. Opencv学习笔记——视频高斯模糊并分别输出

    用两个窗口进行对比 #include "stdafx.h" #include <iostream> #include <opencv2/core/core.hpp ...