我正在编写一个脚本,需要知道主机的MAC地址是什么。
有谁知道怎么做?
答案 0 :(得分:4)
我认为没有任何Ruby内置函数可以检索该地址;您可能必须进行系统调用以列出值(例如,在UNIX上为ifconfig
,在Win32上为ipconfig /all
)并根据需要解析输出。
像这样(未经测试的伪代码):
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
答案 1 :(得分:3)
有一个名为macaddr
的宝石可以做到这一点,但基本上它正在解析系统ifconfig
的输出。您可以在http://www.ruby-forum.com/topic/113956