/// <Summary> /// obtain the CPU and hard disk serial number of the computer, NIC address class // </Summary> class hardwareinfo {// <summary> // obtain the machine name /// </Summary> /// <returns> </ returns> Public String gethostname () {return system. net. DNS. gethostname () ;}/// <summary> // obtain the CPU serial number /// </Summary> /// <returns> </returns> Public static string getcpuserialnumber () {string cpuserialnumber = string. empty; using (managementclass MC = new managementclass ("win32_processor") {using (managementobjectcollection MOC = MC. getinstances () {foreach (managementobject Mo in MoC) {cpuserialnumber = Mo ["processorid"]. tostring (); break; }}return cpuserialnumber ;} /// <summary> /// obtain the hard disk serial number /// </Summary> /// <returns> </returns> Public static string getdiskserialnumber () {string diskserialnumber = string. empty; using (managementobjectsearcher MOS = new managementobjectsearcher () {MOS. query = new selectquery ("win32_diskdrive", "", new string [] {"pnpdeviceid", "signature"}); Using (managementobjectcollection mycollection = MOS. get () {using (managementobjectcollection. managementobjectenumerator em = mycollection. getenumerator () {em. movenext (); diskserialnumber = em. current. properties ["signature"]. value. tostring (). trim () ;}} return diskserialnumber ;} /// <summary> /// obtain the hardware address of the NIC // </Summary> /// <returns> </returns> Public static string getmoaddress () {string moaddress = ""; using (managementclass MC = new managementclass ("win32_networkadapterconfiguration") {using (managementobjectcollection moc2 = MC. getinstances () {foreach (managementobject Mo in moc2) {If (bool) Mo ["ipenabled"]) // determine whether the NIC is available {moaddress = Mo ["macaddress"]. tostring (); break ;}}} return moaddress ;}}
Call example:
String getcomputerinfo = hardwareinfo. getcpuserialnumber () + hardwareinfo. getdiskserialnumber () + hardwareinfo. getmoaddress ();