Nmap delays parsing for options that require knowledge of other options that
the user might have supplied in order to make informed decisions. This is
achieved by using a temporary storage place in which options that can't be
correctly parsed and interpreted without having full knowledge of all other
user supplied command line arguments like -S and -6.
This is for technical reasons; nmap-private-dev programs need to link
against objects files but they can't link against main.o because that
results in a duplicate definition of main.
the current directory, to avoid warnings like
Warning: File ./nmap-services exists, but Nmap is using /home/david/nmap/nmap-services for security and consistency reasons.
when . and /home/david/nmap are the same directory.
quoting of whitespace using double quotes and backslashes. This
allows recovering the original command line array even when
arguments contain whitespace. [David]
timespec doesn't contain a unit. This check was supposed to be done everywhere
but it was missing for --scan-delay and --max-scan-delay. Even if you entered a
time like "10h", which is supposed to disable the warning, it would complain
and tell you to use "10hms".
o Add two new Script scan phases:
Script Pre-scanning phase: before any Nmap scan operation, activated by the new "prerule".
Script Post-scanning phase: after all Nmap scan operations, activated by the new "postrule".
o New environment variables:
SCRIPT_PATH
SCRIPT_NAME
SCRIPT_TYPE: the type of the rule that activated the script.
-A: Enables OS detection and Version detection, Script scanning and Traceroute
to
-A: Enable OS detection, version detection, script scanning, and traceroute
factor of 1000. I realized there is a bad ambiguity in
The default unit for --host-timeout is seconds (since April 2010),
so your time of "10000" is 2.8 hours.
It could be interpreted as "seconds since April 2010" which is a strange
way to specify a length of time and would be confusing if you took it
that way. I have changed it to
Since April 2010, the default unit for --host-timeout is seconds,
so your time of "10000" is 2.8 hours.
says that the function could be outdated if IANA keeps assigning IP ranges,
but I update this function many times per year (usually consisting of more
than one IP block per update). So in case I somehow slack on my unofficial
job of updating this function, I note that it needs frequent attention.