获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)
1 // 注意:首先要在项目中添加引用 System.Management 2 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Web; 7 using System.Management; 8 9 public class Computer 10 { 11 public string CpuID; //CPU的ID 12 public int CpuCount; //CPU的个数 13 public string[] CpuMHZ;//CPU频率 单位:hz 14 public string MacAddress;//计算机的MAC地址 15 public string DiskID;//硬盘的ID 16 public string DiskSize;//硬盘大小 单位:bytes 17 public string IpAddress;//计算机的IP地址 18 public string LoginUserName;//操作系统登录用户名 19 public string ComputerName;//计算机名 20 public string SystemType;//系统类型 21 public string TotalPhysicalMemory; //总共的内存 单位:M 22 public string BoardID;// 主板序列号 23 public string BoardType;// 主板型号 24 private static Computer _instance; 25 public static Computer Instance() 26 { 27 if (_instance == null) 28 _instance = new Computer(); 29 return _instance; 30 } 31 public Computer() 32 { 33 CpuID = GetCpuID(); 34 CpuCount = GetCpuCount(); 35 CpuMHZ = GetCpuMHZ(); 36 MacAddress = GetMacAddress(); 37 DiskID = GetDiskID(); 38 DiskSize = GetSizeOfDisk(); 39 IpAddress = GetIPAddress(); 40 LoginUserName = GetUserName(); 41 SystemType = GetSystemType(); 42 TotalPhysicalMemory = GetTotalPhysicalMemory(); 43 ComputerName = GetComputerName(); 44 BoardID = GetBoardID(); 45 BoardType = GetBoardType(); 46 } 47 string GetCpuID() 48 { 49 try 50 { 51 //获取CPU序列号代码 52 string cpuInfo = " ";//cpu序列号 53 ManagementClass mc = new ManagementClass("Win32_Processor"); 54 ManagementObjectCollection moc = mc.GetInstances(); 55 foreach (ManagementObject mo in moc) 56 { 57 cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); 58 } 59 moc = null; 60 mc = null; 61 return cpuInfo; 62 } 63 catch 64 { 65 return "unknow "; 66 } 67 finally 68 { 69 } 70 71 } 72 public static int GetCpuCount() 73 { 74 try 75 { 76 using (ManagementClass mCpu = new ManagementClass("Win32_Processor")) 77 { 78 ManagementObjectCollection cpus = mCpu.GetInstances(); 79 return cpus.Count; 80 } 81 } 82 catch 83 { 84 } 85 return -1; 86 } 87 public static string[] GetCpuMHZ() 88 { 89 ManagementClass mc = new ManagementClass("Win32_Processor"); 90 ManagementObjectCollection cpus = mc.GetInstances(); 91 92 string[] mHz = new string[cpus.Count]; 93 int c = 0; 94 ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor"); 95 foreach (ManagementObject mo in mySearch.Get()) 96 { 97 mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString(); 98 c++; 99 } 100 mc.Dispose(); 101 mySearch.Dispose(); 102 return mHz; 103 } 104 public static string GetSizeOfDisk() 105 { 106 ManagementClass mc = new ManagementClass("Win32_DiskDrive"); 107 ManagementObjectCollection moj = mc.GetInstances(); 108 foreach (ManagementObject m in moj) 109 { 110 return m.Properties["Size"].Value.ToString(); 111 } 112 return "-1"; 113 } 114 string GetMacAddress() 115 { 116 try 117 { 118 //获取网卡硬件地址 119 string mac = " "; 120 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 121 ManagementObjectCollection moc = mc.GetInstances(); 122 foreach (ManagementObject mo in moc) 123 { 124 if ((bool)mo["IPEnabled"] == true) 125 { 126 mac = mo["MacAddress"].ToString(); 127 break; 128 } 129 } 130 moc = null; 131 mc = null; 132 return mac; 133 } 134 catch 135 { 136 return "unknow "; 137 } 138 finally 139 { 140 } 141 142 } 143 string GetIPAddress() 144 { 145 try 146 { 147 //获取IP地址 148 string st = " "; 149 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 150 ManagementObjectCollection moc = mc.GetInstances(); 151 foreach (ManagementObject mo in moc) 152 { 153 if ((bool)mo["IPEnabled"] == true) 154 { 155 //st=mo[ "IpAddress "].ToString(); 156 System.Array ar; 157 ar = (System.Array)(mo.Properties["IpAddress"].Value); 158 st = ar.GetValue(0).ToString(); 159 break; 160 } 161 } 162 moc = null; 163 mc = null; 164 return st; 165 } 166 catch 167 { 168 return "unknow "; 169 } 170 finally 171 { 172 } 173 174 } 175 string GetDiskID() 176 { 177 try 178 { 179 //获取硬盘ID 180 String HDid = " "; 181 ManagementClass mc = new ManagementClass("Win32_DiskDrive"); 182 ManagementObjectCollection moc = mc.GetInstances(); 183 foreach (ManagementObject mo in moc) 184 { 185 HDid = (string)mo.Properties["Model"].Value; 186 } 187 moc = null; 188 mc = null; 189 return HDid; 190 } 191 catch 192 { 193 return "unknow "; 194 } 195 finally 196 { 197 } 198 199 } 200 /// <summary> 201 /// 操作系统的登录用户名 202 /// </summary> 203 /// <returns> </returns> 204 string GetUserName() 205 { 206 try 207 { 208 string st = " "; 209 ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 210 ManagementObjectCollection moc = mc.GetInstances(); 211 foreach (ManagementObject mo in moc) 212 { 213 214 st = mo["UserName"].ToString(); 215 216 } 217 moc = null; 218 mc = null; 219 return st; 220 } 221 catch 222 { 223 return "unknow "; 224 } 225 finally 226 { 227 } 228 229 } 230 string GetSystemType() 231 { 232 try 233 { 234 string st = " "; 235 ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 236 ManagementObjectCollection moc = mc.GetInstances(); 237 foreach (ManagementObject mo in moc) 238 { 239 240 st = mo["SystemType"].ToString(); 241 242 } 243 moc = null; 244 mc = null; 245 return st; 246 } 247 catch 248 { 249 return "unknow "; 250 } 251 finally 252 { 253 } 254 255 } 256 string GetTotalPhysicalMemory() 257 { 258 try 259 { 260 261 string st = " "; 262 ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 263 ManagementObjectCollection moc = mc.GetInstances(); 264 foreach (ManagementObject mo in moc) 265 { 266 267 st = mo["TotalPhysicalMemory"].ToString(); 268 269 } 270 moc = null; 271 mc = null; 272 return st; 273 } 274 catch 275 { 276 return "unknow "; 277 } 278 finally 279 { 280 } 281 } 282 string GetComputerName() 283 { 284 try 285 { 286 return System.Environment.GetEnvironmentVariable("ComputerName"); 287 } 288 catch 289 { 290 return "unknow "; 291 } 292 finally 293 { 294 } 295 } 296 297 string GetBoardID() 298 { 299 string strbNumber = string.Empty; 300 try 301 { 302 ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_baseboard"); 303 foreach (ManagementObject mo in mos.Get()) 304 { 305 strbNumber = mo["SerialNumber"].ToString().Trim('.'); 306 break; 307 } 308 } 309 catch (Exception ex) 310 { 311 strbNumber = "unknow"; 312 } 313 314 return strbNumber; 315 } 316 317 /// <summary> 318 /// 主板型号 319 /// </summary> 320 /// <returns></returns> 321 string GetBoardType() 322 { 323 string st = ""; 324 ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard"); 325 foreach (ManagementObject mo in mos.Get()) 326 { 327 st = mo["Product"].ToString(); 328 } 329 return st; 330 } 331 332 333 }
转载于:https://www.cnblogs.com/zlsyl/p/5234812.html
获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)相关推荐
- PC和服务器的IP地址信息DNS,PC和服务器的IP地址信息DNS
PC和服务器的IP地址信息DNS 内容精选 换一换 网站的访问与云服务器的网络配置.端口通信.防火墙配置.安全组配置等多个环节相关联.任意一个环节出现问题,都会导致网站无法访问.本节操作介绍网站无法访 ...
- ip 子网数目 网络号 主机号 广播地址 可用IP地址范围
考试中都会给定一个IP地址和对应的子网掩码,让你计算 1.子网数目 2.网络号 3.主机号 4.广播地址 5.可用IP地址范围 综合实例: 已知172.31.128.255/18,试计算: 1.子网数 ...
- 计算机网络中地址数怎么算,【计算机网络技术】根据IP地址子网掩码计算网络地址、直接广播地址、主机号以及可用IP地址的范围...
IP 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器) 主机号在它前面的 ...
- 【计算机网络技术】根据IP地址子网掩码计算网络地址、直接广播地址、主机号以及可用IP地址的范围
IP 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器) 主机号在它前面的 ...
- 网关与网络地址(网络号)以及IP地址、广播地址
转载自:http://blog.sina.com.cn/s/blog_406127500101i8bp.html 学习网络很久了,这个问题还是搞不懂,主要还是不理解这个网关的作用,感觉没有它日子也照样 ...
- PL/SQL 如何查看当前连接信息以及SQL PLUS如何指定IP地址
1.通过PL/SQL 想连接别的数据库可以通过在服务名前面加上IP和左斜线来实现: 2.有时我们的IP和左斜线不用输也能连别的数据库,是因为在一个文件里配置好了.这个文件在哪里? 在这个路径下的 NE ...
- 关于绑定IP地址与端口号的见解
"端口",通俗地讲就是一个通信通道的"门",各种计算机服务和通信都是通过特定的端口与外部计算机进行通信,像常见的WWW.FTP.Telnet服务一样. 随着计算 ...
- 网络编程-IP地址、端口号、网络字节序
IP地址.端口号.网络字节序 本文中部分名词可见: 协议.TCP/IP模型.数据包封装与分用 一.IP地址 1. 简单认识 IP协议有两个版本:IPv4和IPv6. (1)IP地址在IP协议中,用来标 ...
- IP地址、端口号、网络字节序
本文中部分名词可见: 协议.TCP/IP模型.数据包封装与分用 一.IP地址 1. 简单认识 IP协议有两个版本:IPv4和IPv6. (1)IP地址在IP协议中,用来标识网络中不同主机的地址. (2 ...
- 【计算机网络】网络层 : IPv4 地址 ( IP 地址分类 | 特殊 IP 地址 | 私有 IP 地址 | A 类、B 类、C 类 IP 地址网络号主机号数量 )★
文章目录 一.IP 地址 发展 二.分类 IP 地址 三.特殊 IP 地址 四.私有 IP 地址 五.分类 IP 地址 网络号 主机数 详情 一.IP 地址 发展 IP 地址 发展 : 第一阶段 : ...
最新文章
- docker 部署 tomcat 服务
- Spring event 使用完全指南
- BUUCTF-WEB:[强网杯 2019]随便注 1
- hdu 3401(单调队列优化dp)
- No identifier specified for entity没有为实体指定标识符
- 蓝桥杯基础模块7:PWM脉宽调制
- 第四十二节,configparser特定格式的ini配置文件模块
- python 爬虫论_Python网络爬虫(理论篇)
- python网络编程第三版网盘_Python网络编程(socketserver、TFTP云盘、HTTPServer服务器模型)...
- wireless中添加country code的方法(wireless-regdb crda)
- linux微软公式编辑器,linux下的公式编辑器
- 2021秋招总结(器件方向转行数字IC设计)
- Graphene-SGX 总结
- oracle将汉字转为全拼或返回拼音首字母sql
- 支付宝企业转账到个人账号(php源码,亲测)
- Photoshop创意设计手法14点(转)
- Linux下的motion detection(最简单的办公室监控系统)
- 当上技术领导以后才明白的事情
- leet160:相交链表
- 游戏数据分析用到的模型(二)留存率预估
热门文章
- PHP mysql数据迁移,【MySQL】迁移数据目录php-php教程
- Java学习总结:51(对象序列化)
- 守护进程中创建的对象php,在PHP中生成守护进程(Daemon Process)
- 右键新建里面没有word和excel_Windows10系统下如何将Sublime Text3添加到右键快捷菜单?...
- 【servlete】兴唐第三十二节课知识点汇总
- 设置PLSQ 连接oracle数据库
- 适配设备的简易新闻浏览器
- 7 OC 中class 类的结构
- Mac 安装Android Studio
- MacOS无法登录App Store修复