有没有办法独立于操作系统获取主硬盘序列号?在Windows中,使用WMI或DllImport很容易,但我找不到任何关于linux的文档。或者,有没有办法获取跨平台的唯一机器 ID?附言我不在乎病毒机器克隆
在linux终端中,您可以使用以下命令来获取HDD的串行。
udevadm info --query=all --name=/dev/sda | grep ID_SERIAL
其中/dev/sda
通常是主硬盘。
你可以使用如下所示的静态函数来调用 Bash。
public static string Bash(this string cmd)
{
var escapedArgs = cmd.Replace(""", "\"");
var process = new Process()
{
StartInfo = new ProcessStartInfo
{
FileName = "/bin/bash",
Arguments = $"-c "{escapedArgs}"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
process.Start();
string result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return result;
}
然后执行
var output = "udevadm info --query=all --name=/dev/sda | grep ID_SERIAL".Bash();
试试这个:
udevadm info --query=all --name=/dev/sda | grep ID_SERIAL
还有其他方法,但这种方法不需要root权限。