1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-09 14:11:29 +00:00
Files
nmap/scripts/resolveall.nse
2010-09-28 02:04:20 +00:00

76 lines
1.5 KiB
Lua

description = [[
Resolves hostnames and adds every address (IPv4 or IPv6, depending) to Nmap's
target list. Nmap itself resolves a host but only scans the first address.
]]
---
-- @usage
-- nmap --script=resolveall --script-args=newtargets,resolveall.hosts={<host1>, ...} ...
-- @args resolveall.hosts Table of hosts to resolve
author = "Kris Katterjohn"
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
categories = {"safe", "discovery"}
require 'target'
prerule = function() return target.ALLOW_NEW_TARGETS end
local addtargets = function(list)
local sum = 0
for _, t in ipairs(list) do
local st, err = target.add(t)
if st then
sum = sum + 1
else
stdnse.print_debug("Couldn't add target " .. t .. ": " .. err)
end
end
return sum
end
action = function()
local hosts
for _, k in ipairs({"resolveall.hosts", "hosts"}) do
if nmap.registry.args[k] then
hosts = nmap.registry.args[k]
end
end
if not hosts then
stdnse.print_debug(3,
"Skipping '%s' %s, 'resolveall.hosts' argument is missing.",
SCRIPT_NAME, SCRIPT_TYPE)
return
end
if type(hosts) ~= "table" then
stdnse.print_debug(3,
"Skipping '%s' %s, 'resolveall.hosts' must be a table.",
SCRIPT_NAME, SCRIPT_TYPE)
return
end
local sum = 0
for _, host in ipairs(hosts) do
local status, list = nmap.resolve(host, nmap.address_family())
if status and #list > 0 then
sum = sum + addtargets(list)
end
end
if sum == 0 then
return
end
return "Successfully added " .. tostring(sum) .. " new targets"
end