def address
return @mac_address if defined? @mac_address and @mac_address
re = %r/[^:\-](?:[0-9A-F][0-9A-F][:\-]){5}[0-9A-F][0-9A-F][^:\-]/io
cmds = '/sbin/ifconfig', '/bin/ifconfig', 'ifconfig', 'ipconfig /all'
null = test(?e, '/dev/null') ? '/dev/null' : 'NUL'
output = nil
cmds.each do |cmd|
status, stdout, stderr = systemu(cmd) rescue next
next unless stdout and stdout.size > 0
output = stdout and break
end
raise "all of #{ cmds.join ' ' } failed" unless output
@mac_address = parse(output)
end