using System;
using System.Management;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Diagnostics;
using System.Text.RegularExpressions;namespace BaseFunction
{///<summary>///计算机信息类///</summary>public  class ComputerInfo{private  string CpuID;private string MacAddress;private string DiskID;private string IpAddress;private string LoginUserName;private string ComputerName;private string SystemType;private string TotalPhysicalMemory; //单位:M private static ComputerInfo _instance;internal static ComputerInfo Instance(){if (_instance == null)_instance = new ComputerInfo();return _instance;}internal ComputerInfo(){CpuID = GetCpuID();MacAddress = GetMacAddress();DiskID = GetDiskID();IpAddress = GetIPAddress();LoginUserName = GetUserName();SystemType = GetSystemType();TotalPhysicalMemory = GetTotalPhysicalMemory();ComputerName = GetComputerName();}/// <summary>/// 浏览器客户端  获取网卡MAC地址MD5加密串  杨旭东/// </summary>/// <returns></returns>public static string GetClientMac(){try{string clientIP =System.Web.HttpContext.Current.Request.UserHostAddress.Trim();Int32 idest = API.inet_addr(clientIP);Int64 macInfo = new Int64();Int32 length = 6;int res = API.SendARP(idest, 0, ref macInfo, ref length);string mac_src = macInfo.ToString("X");if (!string.IsNullOrEmpty(mac_src) && !"0".Equals(mac_src)){while (mac_src.Length < 12){mac_src = mac_src.Insert(0, "0");}string mac_dest = string.Empty;for (int i = 0; i < 11; i++){if (i % 2 == 0){if (i == 10)mac_dest = mac_dest.Insert(0, mac_src.Substring(i, 2));elsemac_dest = "-" + mac_dest.Insert(0, mac_src.Substring(i, 2));}}return mac_dest;}}catch{return "0";}return "0";}/// <summary>/// 获取CPU序列号代码 /// </summary>/// <returns></returns>public  static  string GetCpuID(){try{//获取CPU序列号代码 string cpuInfo = "";//cpu序列号 ManagementClass mc = new ManagementClass("Win32_Processor");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){cpuInfo = mo.Properties["ProcessorId"].Value.ToString();}moc = null;mc = null;return cpuInfo;}catch{return "unknow";}finally{}}/// <summary>/// 获取网卡硬件地址 /// </summary>/// <returns></returns>public static string GetMacAddress(){try{//获取网卡硬件地址 return Mac.GetMacAddress();}catch{return "unknow";}finally{}}/// <summary>/// 获取IP地址(IPv4)/// </summary>/// <returns></returns>public static string GetIPAddress(){try{IPAddress[] arrIPAddresses = Dns.GetHostAddresses(Dns.GetHostName());foreach (IPAddress ip in arrIPAddresses){if (ip.AddressFamily.Equals(AddressFamily.InterNetwork))//IPv4{return ip.ToString();}}return "unknow";}catch{return "unknow";}finally{}}/// <summary>/// 获取硬盘ID /// </summary>/// <returns></returns>public static string GetDiskID(){try{return Win32.GetHddInformation().ModuleNumber;}catch{return "unknow";}finally{}}///<summary>///操作系统的登录用户名 ///</summary>///<returns></returns>public static string GetUserName(){try{byte[] userName = new byte[30];Int32[] length = new Int32[1];length[0] = 30;//限定用户名长度API.GetUserName(userName, length);return System.Text.Encoding.ASCII.GetString(userName);}catch{return "unknow";}finally{}}///<summary>/// PC类型 ///</summary>///<returns></returns>public static string GetSystemType(){try{string st = "";ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){st = mo["SystemType"].ToString();}moc = null;mc = null;return st;}catch{return "unknow";}finally{}}///<summary>///物理内存 ///</summary>///<returns></returns>public static string GetTotalPhysicalMemory(){try{API.MEMORY_INFO memoryInfo = new API.MEMORY_INFO();API.GlobalMemoryStatus(ref memoryInfo);return memoryInfo.dwTotalPhys.ToString();}catch{return "unknow";}finally{}}///<summary>/// 获取计算机名称///</summary>///<returns></returns>public static string GetComputerName(){try{byte[] computerName = new byte[30];Int32[] length = new Int32[1];length[0] = 30;//限定计算机名长度API.GetComputerName(computerName,length);return System.Text.Encoding.ASCII.GetString(computerName);}catch{return "unknow";}finally{}}}
}

c#常用类库----计算机信息类相关推荐

  1. 微软的system类库和java_Java常用类库----System 类

    System 类基本使用 System.out.println()本身就是一个系统提供好的类,而且out.println()方法也是经常使用到的. System类是一些与系统相关的属性和方法的集合,在 ...

  2. JavaSE——常用类库(String类)

    第1节 常用类库--String 因为String相对之前的类来说更加常用一些,所以对字符串类进行专门的整理. 1. 概述 String类表示字符串,Java中的所有字符串文字都实现为此类的实例. 字 ...

  3. JavaSE——常用类库(下)(Date、DateFormat、Calendar、System类)

    第1节 常用类库(下) 六.java.util.Date Date类表示特定的时刻,精度为毫秒. 在JDK 1.1之前, Date类还有两个附加功能. 它允许将日期解释为年,月,日,小时,分钟和秒值. ...

  4. JavaSE——常用类库(上)(泛型、Objects、Math、ArraysBigDecimal类)

    第1节 常用类库(上) 面向对象更多是思想上的东西,常用类库更多是工具上的东西,熟能生巧,多整理笔记. 一.泛型 1.1 概述 泛型,即"参数化类型".就是将类型由原来具体类型进行 ...

  5. Java应用编程_常用类库汇总2(日期类正则表达式国际化程序)

    总览[Java SE] 相关文章链接 [Java应用编程_常用类库汇总1(字符串处理类&&对象克隆&数字操作类库&-)] [Java应用编程_常用类库汇总3(开发支持类 ...

  6. Java常用类库(Object类、String类、StringBuffer类、包装类、Math类、System类)详解

    常用类库 java.lang java.lang包下放置了Java开发中常用的类和接口,所以为简化该包下类的使用,java.lang包下的类在使用时不需要导入这些类 java.lang包下常用类有: ...

  7. 还在重复造轮子?Java开发人员必知必会的20种常用类库和API

    介绍 一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车.<Effective Java>的作者Joshua Bloch曾经说过:"建议使用现有的API来开发,而不 ...

  8. Java 必知必会的 20 种常用类库和 API

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:为什么程序员都不喜欢使用switch,而是大量的 if--else if ?个人原创+1博客:点击前往,查看更多 ...

  9. java 常用类库_JAVA(三)JAVA常用类库/JAVA IO

    成鹏致远 |lcw.cnblog.com|2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不同, ...

最新文章

  1. 采集练习(一) php 获得全国的小学(数据来自腾讯朋友网)
  2. 文件上传服务器保存形式,78.上传文件及在服务器保存文件到任意路径
  3. python---方法解析顺序MRO(Method Resolution Order)<以及解决类中super方法>
  4. zabbix监控windows进程
  5. (转)svn检出的时候报 Unable to connect to a repository at URL错误
  6. 阿联酋esma认证怎么做_行业视野 | 关于阿联酋eCall 的要求更新
  7. 论文浅尝 \ 联合知识图谱实例和本体概念的通用表示学习
  8. 999元抓出奢侈品包包,万亿市场在实体店找到了新春天!
  9. python类为什么要初始化_python3类对象需要在init中初始化吗?
  10. 网络驱动器映射成功但无法更新文件_我的电脑访问NAS像打开本地硬盘那样打开网络NAS...
  11. There is no Action mapped for namespace / and action name accredit.
  12. Struts2之checkboxlist 设置默认值和结果回显
  13. 计算机屏幕调节亮度,电脑屏幕亮度怎么调最好 有没有调节电脑屏幕亮度的软件...
  14. python运维自动化开发12期_Python自动化运维之12、面向对象进阶
  15. 线程同步,通信与虚方法
  16. Flutter实战之FlutterPlugin插件入门指南
  17. 文库/豆丁网等免账号,积分下载器
  18. 2018农行--软开
  19. win7修改默认字体成xp宋体教程
  20. 【presto】presto 查询hive分桶表问题

热门文章

  1. 23个Python爬虫开源项目代码Python爬虫开源项目代码
  2. zookeeper、hadoop、hbase单机伪分布式环境搭建(虚拟机vmware)
  3. koa-router 源码浅析
  4. 【转载】我是一个线程(修订版)
  5. Linux下启动启动tomcat 服务器报错 The file is absent or does not have execute permission
  6. ext4.0 代理 的使用
  7. 《Maintainable JavaScript》读书笔记
  8. IT人的学习方法论-7 IT专家成长的十个学习的建议(下)
  9. JS 数据结构之旅 :通过JS实现栈、队列、二叉树、二分搜索树、AVL树、Trie树、并查集树、堆
  10. Git如何从众多提交中保留个别提交