Sha256: 89b68bff9b6e0771cc4bba56828907b91b9021781a2ca90f29186b1998329fe3

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 KB

Contents

module Facter::NetMask

def self.get_netmask
        netmask = nil;
        ipregex = %r{(\d{1,3}\.){3}\d{1,3}}

        ops = nil
        case Facter.value(:kernel)
                when 'Linux'
                        ops = {
                                :ifconfig => '/sbin/ifconfig',
                                :regex => %r{\s+ inet\saddr: #{Facter.ipaddress} .*? Mask: (#{ipregex})}x,
                                :munge => nil,
                        }
                when 'SunOS'
                        ops = {
                                :ifconfig => '/usr/sbin/ifconfig -a',
                                :regex => %r{\s+ inet\s+? #{Facter.ipaddress} \+? mask (\w{8})}x,
                                :munge => Proc.new { |mask| mask.scan(/../).collect do |byte| byte.to_i(16) end.join('.') }
                        }
        end

        %x{#{ops[:ifconfig]}}.split(/\n/).collect do |line|
                matches = line.match(ops[:regex])
                if !matches.nil?
                        if ops[:munge].nil?
                                netmask = matches[1]
                        else
                                netmask = ops[:munge].call(matches[1])
                        end
                end
        end
        netmask
end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
facter-1.5.2 lib/facter/util/netmask.rb
facter-1.5 lib/facter/util/netmask.rb