Ruby中的唯一系统标识符是什么?

7
有没有一种在Ruby中生成唯一的硬件依赖识别密钥的方法...?
3个回答

11

在Ruby 1.9.2中,它是内置的。

require 'securerandom'
puts SecureRandom.uuid
#ff97e1e1-22d4-44cf-bf5d-ef1e26444a06

2
实际上这并不是唯一的。每次调用它都会改变。它取决于@pankajdoharey正在寻找什么。如果它是每个硬件的唯一标识符,那么你的解决方案就不适用。 - ALoR
1
UUIDTools的timestamp_create函数接受MAC地址和当前时间,并且似乎是线程安全的。 - aceofspades
这是错误的。即使我们以最宽松的方式解释“unique”,问题也要求“硬件相关”,而Ruby的SecureRandom#uuid目前并且一直生成V4 UUID,这些UUID是纯随机的:“它不包含诸如MAC地址、时间戳等有意义的信息。” https://ruby-doc.org/stdlib-2.5.0/libdoc/securerandom/rdoc/Random/Formatter.html#method-i-uuid - Yuri Gadow

6
对于硬件依赖的识别密钥,我们使用MAC地址。
媒体访问控制地址(MAC地址)是分配给网络接口的唯一标识符,用于在物理网络段上进行通信。 MAC地址通常由网络接口卡(NIC)的制造商分配,并存储在其硬件中,即该卡的只读存储器或其他固件机制中。[维基百科]
这是我们使用的宝石。
名称
macaddr 描述
用于Ruby的跨平台MAC地址确定
URI
http://codeforpeople.com/lib/ruby http://rubyforg.org/projects/codeforpeople 安装
gem install macaddr 概要
require 'macaddr'
Mac.addr #=> 您系统上的第一个MAC地址 Mac.addr.list #=> 您系统上的所有MAC地址

0

有很多适用于此的宝石。只需搜索:

gem search -r uuid

然后选择你最喜欢的那一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接