似乎 Cygwin 没有/etc/机器号默认情况下,我应该如何在 Cygwin 上获取 /etc/machine-id?我猜是
php -r'echo bin2hex(random_bytes(16));'> /etc/machine-id
够接近了吗?但如果有包或官方方式获取它,我很乐意听
答案1
/etc/machine-id 中的机器 ID 没有特殊要求,因此任何产生 32 个十六进制数字的方法都可以。
虽然 systemd 附带的工具确实使用 UUIDv4 格式,该格式在这里和那里设置了一些特定的位,因此uuidgen | sed s/-//g > /etc/machine-id
是一个“更接近”的选择,但这不是必需的(旧版 systemd 也没有这样做,它们过去只是生成完全随机的 ID)。
或者,您可以从注册表中的 HKLM\SOFTWARE\Microsoft\Cryptography 获取“MachineGuid”字段,并将其写入 machine-id 文件。这似乎就是这个 Rust 箱。
但别忘了你的系统有一个主机名。对于 shell 脚本来说,检查本地系统的主机名通常比查找其机器 ID 更容易。PHP 可以gethostname()
做到这一点。