从两方面回答:
1)如何对客户要求做出解释并合理调整
2)如何提高全端口扫描效率,既保证速度,又保证准确率。
首先客户提出提出两周50w个ip全端口这个肯定不现实,所以要考虑跟客户解释,有必要对扫描任务进行时间调整,安排尽可能多的扫描资源,如扫描机器,扫描网络带宽等,参考扫描100个IP端口的平均时长,估计扫完的时间,给出30天时间左右答复,并且留出一周进行后续补扫,文档整理等。
使用到多线程、分布式和高并发,采用masscan + nmap,先 masscan存活过一遍,把未存活IP剔除掉;使用分布式nmap高并发过一遍端口,也可以 massacn 端口扫描过一遍,在nmap 进行探测。
提高扫描速度:由于IP数量过多,不能直接把所有的IP都丢上去扫,时间肯定不够可以跟客户商量减少IP数量,对未存活的IP进行筛选过滤,加快扫描速度需要进行参数微调,如--min-hostgroup、--min-rate和--min-parallelism。对于存在防火墙的情况,可以提出需要提供扫描器
数据整理:对于大量的list 和 json使用python-nmap python-masscan,扫描1个IP处理1个IP