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