class ManageIQ::NetworkDiscovery::PortScanner

Public Class Methods

portAndOrScan?(ost, ports) click to toggle source
# File lib/manageiq/network_discovery/port_scanner.rb, line 19
def self.portAndOrScan?(ost, ports)
  ports.each { |p| return false unless portOrScan?(ost, p) }
  true
end
portOpen(ost, port) click to toggle source
# File lib/manageiq/network_discovery/port_scanner.rb, line 30
def self.portOpen(ost, port)
  ost.timeout ||= 10
  begin
    Timeout.timeout(ost.timeout) do
      s = TCPSocket.open(ost.ipaddr, port)
      s.close
      $log.debug "PortScan: ip = #{ost.ipaddr}, port = #{port}, Found port" if $log
      true
    end
  rescue Timeout::Error, StandardError => err
    $log.debug "PortScan: ip = #{ost.ipaddr}, port = #{port}, #{err}" if $log
    false
  end
end
portOrScan?(ost, ports) click to toggle source
# File lib/manageiq/network_discovery/port_scanner.rb, line 24
def self.portOrScan?(ost, ports)
  ports = [ports] unless ports.kind_of?(Array)
  ports.each { |p| return true if portOpen(ost, p) }
  false
end
scanPortArray(ost, ports) click to toggle source
# File lib/manageiq/network_discovery/port_scanner.rb, line 7
def self.scanPortArray(ost, ports)
  portsFound = []
  ports.each { |p| portsFound << p if portOpen(ost, p) }
  portsFound
end
scanPortRange(ost, startPort, endPort) click to toggle source
# File lib/manageiq/network_discovery/port_scanner.rb, line 13
def self.scanPortRange(ost, startPort, endPort)
  portsFound = []
  startPort.upto(endPort) { |p| portsFound << p if portOpen(ost, p) }
  portsFound
end