Sha256: cc27978c9c2d219d0ac4ac31c2bf3995d5e2606eba1e71cd8a344c1a15385612

Contents?: true

Size: 1.02 KB

Versions: 129

Compression:

Stored size: 1.02 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/ip/windows'

      adapter = Facter::Util::IP::Windows.get_preferred_ipv4_adapters.first
      adapter ? adapter.MACAddress : nil
    end
    module_function :macaddress
  end
end

Version data entries

129 entries across 129 versions & 2 rubygems

Version Path
facter-2.5.7 lib/facter/util/macaddress.rb
facter-2.5.7-x86-mingw32 lib/facter/util/macaddress.rb
facter-2.5.7-x64-mingw32 lib/facter/util/macaddress.rb
facter-2.5.7-universal-darwin lib/facter/util/macaddress.rb
facter-2.5.6-x86-mingw32 lib/facter/util/macaddress.rb
facter-2.5.6-x64-mingw32 lib/facter/util/macaddress.rb
facter-2.5.6-universal-darwin lib/facter/util/macaddress.rb
facter-2.5.6 lib/facter/util/macaddress.rb
facter-2.5.5-x86-mingw32 lib/facter/util/macaddress.rb
facter-2.5.5-x64-mingw32 lib/facter/util/macaddress.rb
facter-2.5.5-universal-darwin lib/facter/util/macaddress.rb
facter-2.5.5 lib/facter/util/macaddress.rb
facter-2.5.4-x86-mingw32 lib/facter/util/macaddress.rb
facter-2.5.4-x64-mingw32 lib/facter/util/macaddress.rb
facter-2.5.4-universal-darwin lib/facter/util/macaddress.rb
facter-2.5.4 lib/facter/util/macaddress.rb
bolt-0.24.0 vendored/facter/lib/facter/util/macaddress.rb
bolt-0.23.0 vendored/facter/lib/facter/util/macaddress.rb
bolt-0.22.0 vendored/facter/lib/facter/util/macaddress.rb
bolt-0.21.8 vendored/facter/lib/facter/util/macaddress.rb