如何在Linux下的Mono中获取主板和处理器唯一标识符?
注意:.Net命名空间System.Management在Mono中没有对应的
答案 0 :(得分:1)
我看到两种可能的方式:
答案 1 :(得分:1)
命令行的典型方法是使用dmidecode或lshw,它读取BIOS DMI区域,并解析序列号。但是,如果您的应用程序不以root身份运行,则无法运行,因为它需要能够读取/ dev / mem。
您可以通过HAL获取部分此类信息。我不完全确定如何通过HAL直接执行此操作,但您可以通过lshal命令执行此操作。在显示的其中一个设备下,您应该看到“system.hardware.serial”和“system.hardware.uuid”的条目 - 这些是主板的序列号和UUID。
您可以像这样从Bash查询HAL:
PC=`hal-find-by-property --key info.product --string Computer`
PC_UUID=`hal-get-property --udi $PC --key system.hardware.uuid`
PC_SERIAL=`hal-get-property --udi $PC --key system.hardware.serial`
在旧机器上,这些键可能是“smbios.system.uuid”和“smbios.system.serial”。此外,请注意,所有计算机上可能不存在此信息,或者完全是假的。我这里至少有一块主板,UUID完全由1组成,另一块主板的CPU序列号几乎全为零。