class Inspec::Resources::NetworkInterface
Public Class Methods
new(iface)
click to toggle source
# File lib/inspec/resources/interface.rb, line 21 def initialize(iface) @iface = iface end
Public Instance Methods
exists?()
click to toggle source
# File lib/inspec/resources/interface.rb, line 25 def exists? !!(interface_info && interface_info[:name]) end
ipv4_address()
click to toggle source
# File lib/inspec/resources/interface.rb, line 50 def ipv4_address ipv4_addresses.first end
ipv4_address?()
click to toggle source
# File lib/inspec/resources/interface.rb, line 42 def ipv4_address? ipv4_addresses && !ipv4_addresses.empty? end
ipv4_addresses()
click to toggle source
# File lib/inspec/resources/interface.rb, line 54 def ipv4_addresses ipv4_cidrs.map { |i| i.split("/")[0] } end
ipv4_addresses_netmask()
click to toggle source
# File lib/inspec/resources/interface.rb, line 66 def ipv4_addresses_netmask ipv4_cidrs.map { |i| i.split("/") }.map do |addr, netlen| binmask = "#{"1" * netlen.to_i}#{"0" * (32 - netlen.to_i)}".to_i(2) netmask = [] (1..4).each do |_byte| netmask.unshift(binmask & 255) binmask = binmask >> 8 end "#{addr}/#{netmask.join(".")}" end end
ipv4_cidrs()
click to toggle source
# File lib/inspec/resources/interface.rb, line 78 def ipv4_cidrs interface_info && Array(interface_info[:ipv4_addresses]) end
ipv6_address()
click to toggle source
# File lib/inspec/resources/interface.rb, line 58 def ipv6_address ipv6_addresses.first end
ipv6_address?()
click to toggle source
# File lib/inspec/resources/interface.rb, line 46 def ipv6_address? ipv6_addresses && !ipv6_addresses.empty? end
ipv6_addresses()
click to toggle source
# File lib/inspec/resources/interface.rb, line 62 def ipv6_addresses ipv6_cidrs.map { |i| i.split("/")[0] } end
ipv6_cidrs()
click to toggle source
# File lib/inspec/resources/interface.rb, line 82 def ipv6_cidrs interface_info && Array(interface_info[:ipv6_addresses]) end
name()
click to toggle source
# File lib/inspec/resources/interface.rb, line 33 def name interface_info[:name] end
speed()
click to toggle source
returns link speed in Mbits/sec
# File lib/inspec/resources/interface.rb, line 38 def speed interface_info && interface_info[:speed] end
to_s()
click to toggle source
# File lib/inspec/resources/interface.rb, line 86 def to_s "Interface #{@iface}" end
up?()
click to toggle source
# File lib/inspec/resources/interface.rb, line 29 def up? !!(interface_info && interface_info[:up]) end
Private Instance Methods
interface_info()
click to toggle source
# File lib/inspec/resources/interface.rb, line 92 def interface_info @cache ||= begin provider = LinuxInterface.new(inspec) if inspec.os.linux? provider = WindowsInterface.new(inspec) if inspec.os.windows? provider = BsdInterface.new(inspec) if inspec.os.bsd? # includes macOS Hash(provider && provider.interface_info(@iface)) end end