【问题标题】:Unique System ID in Ruby ...?Ruby 中的唯一系统 ID ...?
【发布时间】:2011-03-17 12:57:23
【问题描述】:

有没有办法在 Ruby 中生成唯一的硬件相关标识密钥...?

【问题讨论】:

    标签: ruby uniqueidentifier unique-key identification system-identification


    【解决方案1】:

    在 Ruby 1.9.2 中,它是 built in

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

    【讨论】:

    • 其实这不是唯一的。每次调用它都会改变。这取决于@pankajdoharey 在寻找什么。它是每个硬件的唯一 ID,您的解决方案不适合。
    • UUIDTools timestamp_create 获取 mac 地址和当前时间,并显示为线程安全
    • 这是错误的。即使我们以最松散的方式解释“唯一”,该问题仍要求“硬件相关”和 Ruby 的 SecureRandom#uuid,并且始终生成 V4 UUID,这些 UUID 是纯随机的:“它不包含有意义的信息,例如 MAC 地址、时间戳等" ruby-doc.org/stdlib-2.5.0/libdoc/securerandom/rdoc/Random/…
    【解决方案2】:

    对于硬件相关的识别密钥,我们使用 MAC 地址。

    媒体访问控制地址(MAC 地址)是分配给网络接口的唯一标识符,用于物理网段上的通信。 MAC 地址通常由网络接口​​卡 (NIC) 的制造商分配,并存储在其硬件、卡的只读存储器或其他一些固件机制中。 [维基百科]

    这是我们使用的宝石。

    姓名 macaddr 描述 ruby的跨平台mac地址确定 URI http://codeforpeople.com/lib/ruby http://rubyforg.org/projects/codeforpeople 安装 宝石安装 macaddr 概要 需要'macaddr' Mac.addr #=> 系统上的第一个 mac 地址 Mac.addr.list #=> 系统上的所有 mac 地址

    【讨论】:

      【解决方案3】:

      这方面有很多宝石。只需搜索:

      gem search -r uuid
      

      挑选你最喜欢的。

      【讨论】:

        猜你喜欢
        • 2023-04-04
        • 2016-04-13
        • 2022-12-05
        • 1970-01-01
        • 2012-08-31
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多