# File lib/uuid.rb, line 209 209: def pseudo_mac_address 210: sha1 = ::Digest::SHA1.new 211: 256.times do 212: r = [rand(0x100000000)].pack "N" 213: sha1.update r 214: end 215: str = sha1.digest 216: r = rand 14 # 20-6 217: node = str[r, 6] || str 218: if RUBY_VERSION >= "1.9.0" 219: nnode = node.bytes.to_a 220: nnode[0] |= 0x01 221: node = '' 222: nnode.each { |s| node << s.chr } 223: else 224: node[0] |= 0x01 # multicast bit 225: end 226: node.bytes.collect{|b|b.to_s(16)}.join.hex & 0x7FFFFFFFFFFF 227: end