Class: Ronin::CLI::Commands::TldList Private

Inherits:
Ronin::CLI::Command show all
Includes:
CommandKit::Options::Verbose, Core::CLI::Logging, Support::Network::TLD
Defined in:
lib/ronin/cli/commands/tld_list.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Updates and parses the TLD list file.

Usage

ronin tld-list [options]

Options

-v, --verbose                    Enables verbose output
-u, --update                     Updates the TLD list file
-U, --url URL                    URL to the TLD list (Default: https://data.iana.org/TLD/tlds-alpha-by-domain.txt)
-p, --path FILE                  Path to the TLD list file (Default: ~/.cache/ronin/ronin-support/tlds-alpha-by-domain.txt)
-h, --help                       Print help information

Since:

  • 2.0.0

Instance Method Summary collapse

Instance Method Details

#downloadObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Downloads the TLD list file.

Since:

  • 2.0.0



110
111
112
113
114
115
116
# File 'lib/ronin/cli/commands/tld_list.rb', line 110

def download
  if verbose?
    log_info "Downloading TLD list from #{options[:url]} to #{options[:path]} ..."
  end

  List.download(url: options[:url], path: options[:path])
end

#downloaded?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Determines if the TLD list file has been downloaded already.

Returns:

  • (Boolean)

Since:

  • 2.0.0



94
95
96
# File 'lib/ronin/cli/commands/tld_list.rb', line 94

def downloaded?
  List.downloaded?(options[:path])
end

#runObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Runs the ronin tld-list command.

Since:

  • 2.0.0



75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/ronin/cli/commands/tld_list.rb', line 75

def run
  if !downloaded?
    download
  elsif options[:update] || stale?
    update
  end

  list_file = List.load_file(options[:path])

  list_file.each do |tld|
    puts tld
  end
end

#stale?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Determines if the TLD list file is stale.

Returns:

  • (Boolean)

Since:

  • 2.0.0



103
104
105
# File 'lib/ronin/cli/commands/tld_list.rb', line 103

def stale?
  List.stale?(options[:path])
end

#updateObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Updates the TLD list file.

Since:

  • 2.0.0



121
122
123
124
125
126
127
# File 'lib/ronin/cli/commands/tld_list.rb', line 121

def update
  if verbose?
    log_info "Updating TLD list file #{options[:path]} ..."
  end

  List.update(path: options[:path])
end