Я не думаю, что есть какая-либо встроенная функция Ruby для получения этого адреса; вам, скорее всего, придется сделать системный вызов, чтобы получить список значений (например, ifconfig
в UNIX, ipconfig /all
в Win32) и при необходимости проанализировать вывод.
Примерно так (непроверенный псевдокод):
def mac_address
platform = RUBY_PLATFORM.downcase
output = `#{(platform =~ /win32/) ? 'ipconfig /all' : 'ifconfig'}`
case platform
when /darwin/
$1 if output =~ /en1.*?(([A-F0-9]{2}:){5}[A-F0-9]{2})/im
when /win32/
$1 if output =~ /Physical Address.*?(([A-F0-9]{2}-){5}[A-F0-9]{2})/im
# Cases for other platforms...
else nil
end
end