mirror of
https://github.com/nmap/nmap.git
synced 2025-12-09 14:11:29 +00:00
Re-indent some scripts. Whitespace-only commit
https://secwiki.org/w/Nmap/Code_Standards
This commit is contained in:
@@ -41,95 +41,95 @@ local DROPBOX_BROADCAST_PERIOD = 20
|
||||
local DROPBOX_PORT = 17500
|
||||
|
||||
prerule = function()
|
||||
return true
|
||||
return true
|
||||
end
|
||||
|
||||
action = function()
|
||||
-- Start listening for broadcasts.
|
||||
local sock = nmap.new_socket("udp")
|
||||
sock:set_timeout(2 * DROPBOX_BROADCAST_PERIOD * 1000)
|
||||
local status, result = sock:bind(nil, DROPBOX_PORT)
|
||||
if not status then
|
||||
stdnse.print_debug(1, "Could not bind on port %d: %s", DROPBOX_PORT, result)
|
||||
sock:close()
|
||||
return
|
||||
end
|
||||
-- Start listening for broadcasts.
|
||||
local sock = nmap.new_socket("udp")
|
||||
sock:set_timeout(2 * DROPBOX_BROADCAST_PERIOD * 1000)
|
||||
local status, result = sock:bind(nil, DROPBOX_PORT)
|
||||
if not status then
|
||||
stdnse.print_debug(1, "Could not bind on port %d: %s", DROPBOX_PORT, result)
|
||||
sock:close()
|
||||
return
|
||||
end
|
||||
|
||||
-- Keep track of the IDs we've already seen.
|
||||
local ids = {}
|
||||
-- Keep track of the IDs we've already seen.
|
||||
local ids = {}
|
||||
|
||||
-- Initialize the output table.
|
||||
local results = tab.new(6)
|
||||
tab.addrow(
|
||||
results,
|
||||
'displayname',
|
||||
'ip',
|
||||
'port',
|
||||
'version',
|
||||
'host_int',
|
||||
'namespaces'
|
||||
)
|
||||
-- Initialize the output table.
|
||||
local results = tab.new(6)
|
||||
tab.addrow(
|
||||
results,
|
||||
'displayname',
|
||||
'ip',
|
||||
'port',
|
||||
'version',
|
||||
'host_int',
|
||||
'namespaces'
|
||||
)
|
||||
|
||||
local status, result = sock:receive()
|
||||
while status do
|
||||
-- Parse JSON.
|
||||
local status, info = json.parse(result)
|
||||
if status then
|
||||
-- Get IP address of broadcasting host.
|
||||
local status, _, _, ip, _ = sock:get_info()
|
||||
if not status then
|
||||
stdnse.print_debug(1, "Failed to get socket info.")
|
||||
break
|
||||
end
|
||||
stdnse.print_debug(1, "Received broadcast from host %s (%s).", info.displayname, ip)
|
||||
local status, result = sock:receive()
|
||||
while status do
|
||||
-- Parse JSON.
|
||||
local status, info = json.parse(result)
|
||||
if status then
|
||||
-- Get IP address of broadcasting host.
|
||||
local status, _, _, ip, _ = sock:get_info()
|
||||
if not status then
|
||||
stdnse.print_debug(1, "Failed to get socket info.")
|
||||
break
|
||||
end
|
||||
stdnse.print_debug(1, "Received broadcast from host %s (%s).", info.displayname, ip)
|
||||
|
||||
-- Check if we've already seen this ID.
|
||||
if ids[info.host_int] then
|
||||
-- We can stop now, since we've seen the same ID twice
|
||||
-- If ever a host sends a broadcast twice in a row, this will
|
||||
-- artificially stop the listener. I can't think of a workaround
|
||||
-- for now, so this will have to do.
|
||||
break
|
||||
end
|
||||
ids[info.host_int] = true
|
||||
-- Check if we've already seen this ID.
|
||||
if ids[info.host_int] then
|
||||
-- We can stop now, since we've seen the same ID twice
|
||||
-- If ever a host sends a broadcast twice in a row, this will
|
||||
-- artificially stop the listener. I can't think of a workaround
|
||||
-- for now, so this will have to do.
|
||||
break
|
||||
end
|
||||
ids[info.host_int] = true
|
||||
|
||||
-- Add host scan list.
|
||||
if target.ALLOW_NEW_TARGETS then
|
||||
target.add(ip)
|
||||
end
|
||||
-- Add host scan list.
|
||||
if target.ALLOW_NEW_TARGETS then
|
||||
target.add(ip)
|
||||
end
|
||||
|
||||
-- Add host to list.
|
||||
for _, key1 in pairs({"namespaces", "version"}) do
|
||||
for key2, val in pairs(info[key1]) do
|
||||
info[key1][key2] = tostring(info[key1][key2])
|
||||
end
|
||||
end
|
||||
tab.addrow(
|
||||
results,
|
||||
info.displayname,
|
||||
ip,
|
||||
info.port,
|
||||
stdnse.strjoin(".", info.version),
|
||||
info.host_int,
|
||||
stdnse.strjoin(", ", info.namespaces)
|
||||
)
|
||||
-- Add host to list.
|
||||
for _, key1 in pairs({"namespaces", "version"}) do
|
||||
for key2, val in pairs(info[key1]) do
|
||||
info[key1][key2] = tostring(info[key1][key2])
|
||||
end
|
||||
end
|
||||
tab.addrow(
|
||||
results,
|
||||
info.displayname,
|
||||
ip,
|
||||
info.port,
|
||||
stdnse.strjoin(".", info.version),
|
||||
info.host_int,
|
||||
stdnse.strjoin(", ", info.namespaces)
|
||||
)
|
||||
|
||||
stdnse.print_debug(1, "Added host %s.", info.displayname)
|
||||
end
|
||||
stdnse.print_debug(1, "Added host %s.", info.displayname)
|
||||
end
|
||||
|
||||
status, result = sock:receive()
|
||||
end
|
||||
status, result = sock:receive()
|
||||
end
|
||||
|
||||
sock:close()
|
||||
sock:close()
|
||||
|
||||
-- If no broadcasts received, don't output anything.
|
||||
if not next(ids) then
|
||||
return
|
||||
end
|
||||
-- If no broadcasts received, don't output anything.
|
||||
if not next(ids) then
|
||||
return
|
||||
end
|
||||
|
||||
-- Format table, without trailing newline.
|
||||
results = tab.dump(results)
|
||||
results = results:sub(1, #results - 1)
|
||||
-- Format table, without trailing newline.
|
||||
results = tab.dump(results)
|
||||
results = results:sub(1, #results - 1)
|
||||
|
||||
return "\n" .. results
|
||||
return "\n" .. results
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user