class Masscan::Program

Represents the `masscan` program.

Public Class Methods

scan(options={},exec_options={},&block) click to toggle source

Finds the `masscan` program and performs a scan.

@param [Hash{Symbol => Object}] options

Additional options for masscan.

@param [Hash{Symbol => Object}] exec_options

Additional exec-options.

@yield [task]

If a block is given, it will be passed a task object
used to specify options for masscan.

@yieldparam [Task] task

The masscan task object.

@return [Boolean]

Specifies whether the command exited normally.

@example Specifying `masscan` options via a Hash.

Masscan::Program.scan(
  ips: '192.168.1.1/24',
  ports: [22, 80, 443],
)

@example Specifying `masscan` options via a {Task} object.

Masscan::Program.scan do |masscan|
  masscan.ips = '192.168.1.1/24'
  masscan.ports = [22, 80, 443]
end

@see scan

# File lib/masscan/program.rb, line 46
def self.scan(options={},exec_options={},&block)
  find.scan(options,exec_options,&block)
end
sudo_scan(options={},exec_options={},&block) click to toggle source

Finds the `masscan` program and performs a scan, but runs `masscan` under `sudo`.

@see scan

@since 0.8.0

# File lib/masscan/program.rb, line 58
def self.sudo_scan(options={},exec_options={},&block)
  find.sudo_scan(options,exec_options,&block)
end

Public Instance Methods

scan(options={},exec_options={},&block) click to toggle source

Performs a scan.

@param [Hash{Symbol => Object}] options

Additional options for masscan.

@param [Hash{Symbol => Object}] exec_options

Additional exec-options.

@yield [task]

If a block is given, it will be passed a task object
used to specify options for masscan.

@yieldparam [Task] task

The masscan task object.

@return [Boolean]

Specifies whether the command exited normally.

@see rubydoc.info/gems/rprogram/0.3.0/RProgram/Program#run-instance_method

For additional exec-options.
# File lib/masscan/program.rb, line 84
def scan(options={},exec_options={},&block)
  run_task(Task.new(options,&block),exec_options)
end
sudo_scan(options={},exec_options={},&block) click to toggle source

Performs a scan and runs `masscan` under `sudo`.

@see scan

@since 0.8.0

# File lib/masscan/program.rb, line 95
def sudo_scan(options={},exec_options={},&block)
  sudo_task(Task.new(options,&block),exec_options)
end