如何使用Ruby以编程方式获取我的MAC地址

时间:2012-01-06 17:28:31

标签: ruby macos

我正在编写一个脚本,需要知道主机的MAC地址是什么。

有谁知道怎么做?

2 个答案:

答案 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

开发时查看该主题