Как получить мой MAC-адрес программно с помощью Ruby - PullRequest
5 голосов
/ 06 января 2012

Я пишу скрипт, который должен знать MAC-адрес хост-компьютера.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

4 голосов
/ 06 января 2012

Я не думаю, что есть какая-либо встроенная функция 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
3 голосов
/ 06 января 2012

Существует гем под названием macaddr, который делает это, но в основном он анализирует выходные данные ifconfig системы.Вы можете увидеть поток, когда он разрабатывался в http://www.ruby -forum.com / topic / 113956

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...