1 using System;
2 using System.Management;
3 namespace Soyee.Comm
4 {
5 /// <summary>
6 /// Computer Information
7 /// </summary>
8 public class Computer
9 {
10 public string CpuID;
11 public string MacAddress;
12 public string DiskID;
13 public string IpAddress;
14 public string LoginUserName;
15 public string ComputerName;
16 public string SystemType;
17 public string TotalPhysicalMemory; //单位:M
18 private static Computer _instance;
19 public static Computer Instance()
20 {
21 if (_instance == null)
22 _instance = new Computer();
23 return _instance;
24 }
25 protected Computer()
26 {
27 CpuID=GetCpuID();
28 MacAddress=GetMacAddress();
29 DiskID=GetDiskID();
30 IpAddress=GetIPAddress();
31 LoginUserName=GetUserName();
32 SystemType=GetSystemType();
33 TotalPhysicalMemory=GetTotalPhysicalMemory();
34 ComputerName=GetComputerName();
35 }
36 string GetCpuID()
37 {
38 try
39 {
40 //获取CPU序列号代码
41 string cpuInfo = "";//cpu序列号
42 ManagementClass mc = new ManagementClass("Win32_Processor");
43 ManagementObjectCollection moc = mc.GetInstances();
44 foreach(ManagementObject mo in moc)
45 {
46 cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
47 }
48 moc=null;
49 mc=null;
50 return cpuInfo;
51 }
52 catch
53 {
54 return "unknow";
55 }
56 finally
57 {
58 }
59
60 }
61 string GetMacAddress()
62 {
63 try
64 {
65 //获取网卡硬件地址
66 string mac="";
67 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
68 ManagementObjectCollection moc = mc.GetInstances();
69 foreach(ManagementObject mo in moc)
70 {
71 if((bool)mo["IPEnabled"] == true)
72 {
73 mac=mo["MacAddress"].ToString();
74 break;
75 }
76 }
77 moc=null;
78 mc=null;
79 return mac;
80 }
81 catch
82 {
83 return "unknow";
84 }
85 finally
86 {
87 }
88
89 }
90 string GetIPAddress()
91 {
92 try
93 {
94 //获取IP地址
95 string st="";
96 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
97 ManagementObjectCollection moc = mc.GetInstances();
98 foreach(ManagementObject mo in moc)
99 {
100 if((bool)mo["IPEnabled"] == true)
101 {
102 //st=mo["IpAddress"].ToString();
103 System.Array ar;
104 ar=(System.Array)(mo.Properties["IpAddress"].Value);
105 st=ar.GetValue(0).ToString();
106 break;
107 }
108 }
109 moc=null;
110 mc=null;
111 return st;
112 }
113 catch
114 {
115 return "unknow";
116 }
117 finally
118 {
119 }
120
121 }
122
123 string GetDiskID()
124 {
125 try
126 {
127 //获取硬盘ID
128 String HDid="";
129 ManagementClass mc = new ManagementClass("Win32_DiskDrive");
130 ManagementObjectCollection moc = mc.GetInstances();
131 foreach(ManagementObject mo in moc)
132 {
133 HDid = (string)mo.Properties["Model"].Value;
134 }
135 moc=null;
136 mc=null;
137 return HDid;
138 }
139 catch
140 {
141 return "unknow";
142 }
143 finally
144 {
145 }
146
147 }
148
149 /// <summary>
150 /// 操作系统的登录用户名
151 /// </summary>
152 /// <returns></returns>
153 string GetUserName()
154 {
155 try
156 {
157 string st="";
158 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
159 ManagementObjectCollection moc = mc.GetInstances();
160 foreach(ManagementObject mo in moc)
161 {
162
163 st=mo["UserName"].ToString();
164
165 }
166 moc=null;
167 mc=null;
168 return st;
169 }
170 catch
171 {
172 return "unknow";
173 }
174 finally
175 {
176 }
177
178 }
179
180
181 /// <summary>
182 /// PC类型
183 /// </summary>
184 /// <returns></returns>
185 string GetSystemType()
186 {
187 try
188 {
189 string st="";
190 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
191 ManagementObjectCollection moc = mc.GetInstances();
192 foreach(ManagementObject mo in moc)
193 {
194
195 st=mo["SystemType"].ToString();
196
197 }
198 moc=null;
199 mc=null;
200 return st;
201 }
202 catch
203 {
204 return "unknow";
205 }
206 finally
207 {
208 }
209
210 }
211
212 /// <summary>
213 /// 物理内存
214 /// </summary>
215 /// <returns></returns>
216 string GetTotalPhysicalMemory()
217 {
218 try
219 {
220
221 string st="";
222 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
223 ManagementObjectCollection moc = mc.GetInstances();
224 foreach(ManagementObject mo in moc)
225 {
226
227 st=mo["TotalPhysicalMemory"].ToString();
228
229 }
230 moc=null;
231 mc=null;
232 return st;
233 }
234 catch
235 {
236 return "unknow";
237 }
238 finally
239 {
240 }
241 }
242 /// <summary>
243 ///
244 /// </summary>
245 /// <returns></returns>
246 string GetComputerName()
247 {
248 try
249 {
250 return System.Environment.GetEnvironmentVariable("ComputerName");
251 }
252 catch
253 {
254 return "unknow";
255 }
256 finally
257 {
258 }
259 }
260
261
262 }
263 }