中断后不要先问“扫完了多少”,而要问“扫描前有没有留下可复核的进度记录”。如果扫描工具在中断前持续输出了已处理目标、时间戳和错误分类,那么已覆盖范围可以按记录重建;如果只有一条启动日志和最终汇总,中断后基本无法准确判断覆盖到哪里,此时应把这次结果视为不完整样本,而不是按比例折算成全站结论。站长IP查询在这类场景里更像一次盘点:中断后能不能继续用,取决于你手里有没有可验证的中间账,而不是取决于工具本身叫得多响。
同样是扫描被中断,后续决策完全不同。判断依据不是中断原因,而是中断前是否形成了稳定、可复核的检查点。
可续扫时,你的下一步是补齐剩余目标并合并结果;不可续扫时,你的下一步是决定重新扫描还是缩小范围重做,而不是猜测已完成比例。把这两种情况混在一起,最容易出现“看起来扫了一半,实际只扫了开头”的误判。
没有进度记录时,仍有一些间接证据可以帮你缩小不确定性,但它们只能说明“可能扫过”,不能证明“扫全了”。
这三类证据的共同点是:它们都依赖扫描前或扫描中留下的外部痕迹。如果这些痕迹都不存在,那么“已覆盖范围”这个问题在当前这次扫描里没有可靠答案。
面对不完整的扫描结果,常见的处理方式有三种,但每种都有明确的适用前提。
适用前提是:你只需要回答某个局部问题,例如某几个目标段是否可达,而不需要全站结论。此时可以把已确认处理完成的目标单独抽出,明确标注覆盖边界,后续引用时只在这个边界内说话。动作上,建议把已确认完成的目标另存一份,并在文件名或记录中注明中断时间和覆盖范围。这样做的结果是,后续复查时不会把局部样本误当成全量结果。
适用前提是:目标总量较大,但业务上真正需要确认的只是其中一部分。此时不要重新全量扫描,而是按网段、按业务分组或按优先级拆分任务,每次只跑一个可完成的小范围。动作上,先跑一个最小批次并确认输出完整,再决定是否扩大。这样做的结果是,即使再次中断,你损失的也只是一个已知边界内的小批次,而不是整个盘点。
适用前提是:扫描本身不是必须的,你要回答的问题可以通过配置核对、日志比对或人工抽样来回答。例如,确认某个服务是否对外暴露,未必需要全站扫描,检查监听配置和防火墙规则可能更直接。动作上,先明确你要回答的具体问题,再判断扫描是不是唯一手段。这样做的结果是,避免为了一个可以用更轻方式回答的问题反复重扫。
假设你有一份包含若干目标段的扫描任务,中断前输出文件里最后一条记录的时间是 14:32,目标段顺序处理,输出为追加写入。此时可以初步判断 14:32 之前处理的目标段已有记录,14:32 之后的目标段没有证据。如果业务只关心前几个目标段,那么保留现有结果并标注边界即可;如果业务要求覆盖全部目标段,那么应从中断位置之后继续,而不是从头重扫。这个判断成立的前提是输出确实按顺序追加且没有覆盖写入;如果输出方式不确定,这个结论就不成立,需要先核对输出机制再决定。
复查不是再扫一遍,而是核对三件事:目标清单是否完整、输出记录是否连续、中断点是否可定位。如果这三项里有一项无法确认,那么已覆盖范围就应标记为不确定,而不是给出一个估算比例。请求量归零、抓取量下降或某段时间没有新记录,都可能有多种解释,例如目标不可达、扫描被限速、输出缓冲未刷新,不能单独用来证明扫描已经完成或未完成。
最终判断标准可以归结为一句话:能重建进度记录的扫描,按记录续做;不能重建的扫描,按不确定处理,并根据业务需要决定缩小范围重做还是改用其他判断方式。