- Switched to using
require_relative
to improve load-times. - Added
# frozen_string_literal: true
to all files.
- The
--mtu
option now accepts an option numeric value.
- Fixed a typo in the
--unprivileged
option mapping. - Improved validations for port number, service name, port range, and port list String values.
- Fixed an infinite loop in {Nmap::XML::Script#parse_tables}. (@myztique)
- Switched from rprogram to command_mapper.
- Replaced
Nmap::Program
andNmap::Task
with {Nmap::Command}. - Moved all XML classes under {Nmap::XML}.
- See UPGRADING for more details on how to upgrade from 0.10.0 to 1.0.0.
- Added support for the
--unique
option asnmap.unique
. - Added support for the
--resolve-all
option asnmap.resolve_all
. - Added support for the
--noninteractive
option asnmap.non_interactive
. - Added support for the
--proxies
option asnmap.proxies
. - Added support for the
--data
option asnmap.data
. - Added support for the
--data-string
option asnmap.data_string
. - Added support for the
--script-help
option asnmap.script_help
. - Added support for the
--script-args-file
option asnmap.script_args_file
. - Added support for the
--script-timeout
option asnmap.script_timeout
. - Added support for the
--initial-rtt-timeout
option asnmap.initial_rtt_timeout
. - Added support for the
-vv
option asnmap.extra_verbose
. - Allow passing Integer values to
verbose:
ornmap.verbose=
for-v
level. - Greatly improved the validation of input values.
- Removed
#script_params
and#script_params=
aliases for#script_args
and#script_args=
.
- Removed the deprecated
Nmap::XML.load
method in favor of {Nmap::XML.parse}. - Removed the
Nmap::XML#prescripts
alias toNmap::XML#prescript
. - Removed the
Nmap::XML#postscripts
alias toNmap::XML#postscript
. - Removed
Nmap::XML::Host#tcpsequence
in favor of {Nmap::XML::Host#tcp_sequence}. - Removed
Nmap::XML::Host#ipidsequence
in favor of {Nmap::XML::Host#ip_id_sequence}. - Removed
Nmap::XML::Host#tcptssequence
in favor of {Nmap::XML::Host#tcp_ts_sequence}. - Removed
Nmap::XML#inspect
method. - Added {Nmap::XML::Script}.
- Removed
Nmap::XML::Scripts#script_data
. - Changed {Nmap::XML::Scripts#scripts} to return {Nmap::XML::Script} objects.
- Added
Nmap::Task#exclude_ports
for the--exclude-ports
option. - Added
Nmap::Status#reason_ttl
. - Added
Nmap::Port#reason_ttl
. - Added
Nmap::XML#task
. - Alias
Nmap::ScanTask#extra_info
toNmap::ScanTask#extrainfo
.
- Added missing
Nmap::Task#defeat_icmp_ratelimit
for the--defeat-icmp-ratelimit
option. - Added missing
Nmap::Task#nsock_engine
for the--nsock-engine
option. - Added the
Nmap::XML#prescripts
alias. - Added the
Nmap::XML#postscripts
alias. - Allow
Task#sctp_init_ping
to accept a port Range object. - Fixed a typo in the
Task#defeat_rst_ratelimit
name. - Fixed the option formatting of
Nmap::Task#syn_discovery
. - Fixed the option formatting of
Nmap::Task#ack_discovery
. - Fixed the option formatting of
Nmap::Task#udp_discovery
. - Fixed the option formatting of
Nmap::Task#sctp_init_ping
. - Fixed the option formatting of
Nmap::Task#ip_ping
.
- Fix file descriptor leak in
Nmap::XML#initialize
by usingFile.open(path) { |file| ... }
instead ofFile.new(path)
, which keeps the file descriptor open until GC collects theFile
instance.
- Fixed
Nmap::Host#ipv6
when there are noipv6
type addresses. - Fixed
Nmap::OS#fingerprint
when there is noosfingerprint
element.
- Added
Nmap::Address#vendor
. - Added
Nmap::Service#to_s
. - Added
Nmap::HostScript
. - Added
Nmap::Prescript
. - Added
Nmap::Postscript
. - Added
Nmap::XML#prescript
. - Added
Nmap::XML#postscript
. - Added
Nmap::Task#quiet
(aka-v0
). #script_data
methods can now parse arbitrarily nested Arrays/Hashes.- Fixed
Nmap::CPE#each_cpe
to only match childcpe
elements, not allcpe
elements within the document. - Changed
Nmap::Service#to_s
to output product/version only if both are present. - Changed
Nmap::Task#skip_discovery
to use-Pn
instead of-PN
, which was deprecated in nmap >= 7.00.
- Added
Nmap::XML#each_down_host
. - Added
Nmap::XML#down_hosts
. - Added
Nmap::XML#host
. - Added
Nmap::XML#up_host
. - Added
Nmap::XML#down_host
. - Added
Nmap::Host#hostname
. - Added
Nmap::Hostname#user?
. - Added
Nmap::Hostname#ptr?
. - Added
Nmap::Program.sudo_scan
. - Added
Nmap::Program#sudo_scan
. - Renamed
Nmap::XML.load
toNmap::XML.parse
. - Fixed a typo in the
--privileged
flag (@BrentonEarl) - Allow multiple values in the
--script
flag. - Alias
Nmap::Task#script_params
toscript_args
.
- Added
Nmap::CPE
. - Added
Nmap::CPE::URL
. - Added
Nmap::Hop
. - Added
Nmap::Hostname
. - Added
Nmap::Traceroute
. - Added
Nmap::Host#traceroute
. - Added
Nmap::Host#uptime
. (@roodee) - Added
Nmap::Service#ssl?
. - Added
Nmap::Service#protocol
. - Added
Nmap::Service#extra_info
. - Added
Nmap::Service#os_type
. - Added
Nmap::Service#device_type
. - Added
Nmap::Service#fingerprint
. (@roodee) - Added
Nmap::Uptime
. (@roodee) - Added
Nmap::RunStat
. (@roodee) - Added
Nmap::XML.load
. (@vzctl) - Added
Nmap::XML.open
. - Added
Nmap::XML#each_run_stat
. - Added
Nmap::XML#run_stats
. - Added
Nmap::XML#each_task
. - Fixed xpath bug in
Nmap::OS#each_class
(@roodee).
- Added
Nmap::Service
. - Renamed
Nmap::IpidSequence
toNmap::IpIdSequence
. - Renamed
Nmap::Host#ipidsequence
toNmap::Host#ip_id_sequence
. - Renamed
Nmap::Host#tcpsequence
toNmap::Host#tcp_sequence
. - Renamed
Nmap::Host#tcptssequence
toNmap::Host#tcp_ts_sequence
.
- Replaced ore-tasks with rubygems-tasks.
- Require nokogiri ~> 1.3.
- Require rprogram ~> 0.3.
ip_scan
inNmap::Task
should map to-sO
(thanks corvus).
- Fixed a bug in
Nmap::XML#each
where it was callingeach_up_hosts
, and notNmap::XML#each_up_host
. Nmap::OS#each_class
,Nmap::OS#each_match
,Nmap::XML#each_host
andNmap::XML#each_up_host
now return an Enumerator object if no block is given.- Use
yield
instead ofblock.call
for a slight performance improvement.
- Added new options to
Nmap::Task
based on nmap 5.21:-PY
-nmap.sctp_init_ping
-PR
-nmap.arp_ping
-sY
-nmap.sctp_init_scan
-sZ
-nmap.sctp_cookie_echo_scan
--allports
-nmap.all_ports
-sR
-nmap.rpc_scan
-T
-nmap.timing_template
-T0
-nmap.paranoid_timing
-T1
-nmap.sneaky_timing
-T2
-nmap.polite_timing
-T3
-nmap.normal_timing
-T4
-nmap.aggressive_timing
-T5
-nmap.insane_timing
--randomize-hosts
-nmap.randomize_hosts
--adler32
-nmap.sctp_adler32
-oA
-nmap.output_all
-d
-nmap.debug
--stats-every
-nmap.stats_every
--release-memory
-nmap.release_memory
- Specify that ruby-nmap requires
nmap
>= 5.00.
- Added
Nmap::Host#scripts
. - Added
Nmap::Port#scripts
.
- Require nokogiri >= 1.3.0.
- Require rprogram ~> 0.2.0.
- Added
Nmap::XML#tasks
. - Added
Nmap::Scanner#start_time
. - Added
Nmap::ScanTask#duration
. - Added
Nmap::Host#start_time
. - Added
Nmap::Host#end_time
. - Allow
Nmap::Tasks#ports=
to accept port ranges. - Omit the
-p
option if no ports are given toNmap::Task
. - Have the
Nmap::Host#each_*
methods return anEnumerator
object if no block is given.
- Require RProgram >= 0.1.8.
- Adds
sudo
andsudo=
instance methods toNmap::Task
.
- Adds
- Initial release.
- Provides a Ruby interface for running Nmap.
- Provides a Parser for enumerating Nmap XML scan files.