Sha256: b1adc973b3f72102baa9807f6fc0bea2e9e55f8541dc61b85fdbe5273e438e5c

Contents?: true

Size: 1.2 KB

Versions: 4

Compression:

Stored size: 1.2 KB

Contents

require 'ssh_scan/os'
require 'ssh_scan/ssh_lib'

module SSHScan
  class Banner
    def initialize(string)
      @string = string
    end

    def self.read(string)
      return SSHScan::Banner.new(string.chomp)
    end

    def ssh_version()
      if version = @string.match(/SSH-(\d+[\.\d+]+)/)[1]
        return version.to_f
      else
        return "unknown"
      end
    end

    def ssh_lib_guess()
      case @string
      when /OpenSSH/i
        return SSHScan::SSHLib::OpenSSH.new(@string)
      when /LibSSH/i
        return SSHScan::SSHLib::LibSSH.new()
      else
        return SSHScan::SSHLib::Unknown.new()
      end
    end

    def os_guess()
      case @string
      when /Ubuntu/i
        return SSHScan::OS::Ubuntu.new(@string)
      when /CentOS/i
        return SSHScan::OS::CentOS.new
      when /RHEL|RedHat/i
        return SSHScan::OS::RedHat.new
      when /FreeBSD/i
        return SSHScan::OS::FreeBSD.new
      when /Debian/i
        return SSHScan::OS::Debian.new
      when /Windows/i
        return SSHScan::OS::Windows.new
      else
        return SSHScan::OS::Unknown.new
      end
    end

    def ==(other)
      self.to_s == other.to_s
    end

    def to_s
      @string
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ssh_scan-0.0.12 lib/ssh_scan/banner.rb
ssh_scan-0.0.12.beta.2 lib/ssh_scan/banner.rb
ssh_scan-0.0.12.beta.1 lib/ssh_scan/banner.rb
ssh_scan-0.0.11 lib/ssh_scan/banner.rb