Sha256: aed6ed1eaf2b3b1571288e6525179f33d67ae26c4be7faf43e1321ef0a259e78

Contents?: true

Size: 1.13 KB

Versions: 43

Compression:

Stored size: 1.13 KB

Contents

# A module to gather macaddress facts
#
module Facter::Util::Macaddress

  def self.standardize(macaddress)
    return nil unless macaddress
    macaddress.split(":").map{|x| "0#{x}"[-2..-1]}.join(":")
  end

  module Darwin
    def self.macaddress
      iface = default_interface
      Facter.warn "Could not find a default route. Using first non-loopback interface" if iface.empty?

      macaddress = `#{ifconfig_command} #{iface} | /usr/bin/awk '/ether/{print $2;exit}'`.chomp
      macaddress.empty? ? nil : macaddress
    end

    def self.default_interface
      `#{netstat_command} | /usr/bin/awk  '/^default/{print $6;exit}'`.chomp
    end

    private

    def self.netstat_command
      '/usr/sbin/netstat -rn'
    end

    def self.ifconfig_command
      '/sbin/ifconfig'
    end
  end

  module Windows
    def macaddress
      require 'facter/util/wmi'

      query = "select MACAddress from Win32_NetworkAdapterConfiguration where IPEnabled = True"

      ether = nil
      Facter::Util::WMI.execquery(query).each do |nic|
        ether = nic.MacAddress
        break
      end
      ether
    end
    module_function :macaddress
  end
end

Version data entries

43 entries across 43 versions & 3 rubygems

Version Path
facter-1.7.2 lib/facter/util/macaddress.rb
facter-1.7.2.rc1 lib/facter/util/macaddress.rb
facter-1.7.1 lib/facter/util/macaddress.rb
facter-1.7.1.rc1 lib/facter/util/macaddress.rb
librarian-puppet-0.9.9 vendor/gems/ruby/1.9.1/gems/facter-1.6.17/lib/facter/util/macaddress.rb
facter-1.7.0 lib/facter/util/macaddress.rb
facter-1.7.0.rc2 lib/facter/util/macaddress.rb
facter-1.7.0.rc1 lib/facter/util/macaddress.rb
facter-1.6.18 lib/facter/util/macaddress.rb
facter-1.6.18.rc1 lib/facter/util/macaddress.rb
librarian-puppet-0.9.8 vendor/gems/ruby/1.9.1/gems/facter-1.6.17/lib/facter/util/macaddress.rb
facter-1.6.17 lib/facter/util/macaddress.rb
facter-1.6.17.rc1 lib/facter/util/macaddress.rb
facter-1.6.16 lib/facter/util/macaddress.rb
facter-1.6.15 lib/facter/util/macaddress.rb
facter-1.6.15.rc1 lib/facter/util/macaddress.rb
facter-1.6.14 lib/facter/util/macaddress.rb
facter-1.6.14.rc1 lib/facter/util/macaddress.rb
facter-1.6.13 lib/facter/util/macaddress.rb
facter-1.6.13.rc1 lib/facter/util/macaddress.rb