NMap 如何决定打印进度线?

NMap 如何决定打印进度线?

检查比平常更大的子网;在大学里为流量映射项目规划集群套件(已获得许可),我想知道一些事情。

NMap 通常会定期打印其进度,但我不清楚“定期”是什么,因为当前扫描基本上每 100% 打印一行,直到完成 1%,然后在 1.5% 时打印一行,之后就没有再显示任何内容。

我怀疑它在不同的“层面”上发生变化,但有人有真正的答案吗?

答案1

您可以在正在运行的扫描期间按任意未绑定到功能的键来获取状态行(按下可?查看绑定列表)。

或者,您可以传递--stats-every带有时间值的选项。因此,这nmap --stats-every 1m将每分钟打印一次详细(2 行)状态。此状态行也会显示在 XML 输出文件中。

答案2

深入研究 NMap 源代码(特别是 Timing.cc)后,我得到了以下默认详细程度和调试值。

  • 如果扫描完成度不到 0.003%,则不要打印
  • 如果完成度不到 1%,请使用以下规则,但不要打印 ETA
  • 如果扫描剩余时间不足 30 秒,则不要打印
  • 如果没有预计时间,请不要打印
  • 否则,如果之前的预估时间已经过去(过去的预计到达时间),则打印一份新的预估时间
  • 最后,如果预计到达时间 (ETA) 的变化超过 3 分钟,或进度发生变化 5%,则打印新的预计到达时间 (ETA)

我认为基本上就是这样,但如果有人发现更多规则,请随意在评论中添加它们,我会对其进行编辑。

相关内容