@@ -28,26 +28,70 @@ internal async static Task<JObject> GetJObjectFromFileAsync(IFile file)
2828
2929 static string GetDeviceIdImpl ( )
3030 {
31- ManagementObjectSearcher mos = new ManagementObjectSearcher ( "SELECT * FROM Win32_BaseBoard" ) ;
32- ManagementObjectCollection moc = mos . Get ( ) ;
33- string mbId = String . Empty ;
31+ var mbId = GetSerialNumber ( ) ;
32+ var procId = GetProcId ( ) ;
33+
34+ if ( string . IsNullOrEmpty ( procId ) )
35+ {
36+ procId = GetMAC ( ) ;
37+ }
38+
39+ return procId + '-' + mbId ;
40+ }
41+
42+ static string GetSerialNumber ( )
43+ {
44+ var mos = new ManagementObjectSearcher ( "SELECT * FROM Win32_BaseBoard" ) ;
45+ var moc = mos . Get ( ) ;
46+ var mbId = String . Empty ;
47+
3448 foreach ( ManagementObject mo in moc )
3549 {
3650 mbId = ( string ) mo [ "SerialNumber" ] ;
37- break ;
51+ if ( ! string . IsNullOrEmpty ( mbId ) )
52+ break ;
53+ }
54+
55+ return mbId ;
56+ }
57+
58+ static string GetProcId ( )
59+ {
60+ var mos = new ManagementObjectSearcher ( "Select * From Win32_processor" ) ;
61+ var moc = mos . Get ( ) ;
62+ var procId = string . Empty ;
63+
64+ foreach ( ManagementObject mo in moc )
65+ {
66+ procId = ( string ) mo [ "ProcessorID" ] ;
67+ if ( ! string . IsNullOrEmpty ( procId ) )
68+ break ;
3869 }
70+ return procId ;
71+ }
3972
40- ManagementObjectCollection mbsList = null ;
41- ManagementObjectSearcher mbs = new ManagementObjectSearcher ( "Select * From Win32_processor" ) ;
42- mbsList = mbs . Get ( ) ;
43- string procId = string . Empty ;
44- foreach ( ManagementObject mo in mbsList )
73+ static string GetMAC ( )
74+ {
75+ var mos = new ManagementObjectSearcher ( "Select * From Win32_NetworkAdapterConfiguration" ) ;
76+ var moc = mos . Get ( ) ;
77+ var mac = string . Empty ;
78+
79+ foreach ( ManagementObject mo in moc )
4580 {
46- procId = mo [ "ProcessorID" ] . ToString ( ) ;
47- break ;
81+ try
82+ {
83+ if ( ( bool ) mo [ "IPEnabled" ] )
84+ {
85+ mac = ( string ) mo [ "MacAddress" ] ;
86+ break ;
87+ }
88+ }
89+ catch ( Exception )
90+ {
91+ }
4892 }
4993
50- return procId + "-" + mbId ;
94+ return mac ;
5195 }
5296 }
5397}
0 commit comments