Method: Inspec::Resources::UnixHostProvider#resolve_with_getent
- Defined in:
- lib/inspec/resources/host.rb
#resolve_with_getent(hostname) ⇒ Object
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 |
# File 'lib/inspec/resources/host.rb', line 250 def resolve_with_getent(hostname) cmd = inspec.command("getent ahosts #{hostname}") return nil unless cmd.exit_status.to_i == 0 # getent ahosts output is formatted like so: # $ getent ahosts www.google.com # 172.217.8.4 STREAM www.google.com # 172.217.8.4 DGRAM # 172.217.8.4 RAW # 2607:f8b0:4004:803::2004 STREAM # 2607:f8b0:4004:803::2004 DGRAM # 2607:f8b0:4004:803::2004 RAW addresses = [] cmd.stdout.lines.each do |line| ip, = line.split(/\s+/, 2) next unless ip.match(Resolv::IPv4::Regex) || ip.match(Resolv::IPv6::Regex) addresses << ip unless addresses.include?(ip) end addresses end |