Sha256: c44ed5079d0b10807c1d425d30e7f16993b79d4c2cb7cab2078ca320c6a936ba

Contents?: true

Size: 691 Bytes

Versions: 3

Compression:

Stored size: 691 Bytes

Contents

# frozen_string_literal: true

require "ipaddr"
require "uri"

module Onyphe
  class Validator
    def self.valid_ip?(ip)
      IPAddr.new ip
      true
    rescue IPAddr::InvalidAddressError => _
      false
    end

    def self.valid_domain?(domain)
      uri = URI("https://#{domain}")
      uri.hostname == domain && domain.include?(".") && !valid_ip?(domain)
    rescue ArgumentError => _
      false
    end

    def self.valid_onion_domain?(domain)
      uri = URI("https://#{domain}")
      uri.hostname == domain && domain.end_with?(".onion")
    rescue ArgumentError => _
      false
    end

    def self.valid_md5?(md5)
      md5.to_s.match?(/^[a-f0-9]{32}$/)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
onyphe-0.2.2 lib/onyphe/validator.rb
onyphe-0.2.1 lib/onyphe/validator.rb
onyphe-0.2.0 lib/onyphe/validator.rb