APP下载

使用python调用Nmap并处理返回结果

2021-07-26赵子凯王宇岳雪婷

计算机与网络 2021年10期
关键词:调用使用者编码

赵子凯 王宇 岳雪婷

Nmap 是一款网络扫描和主机侦测的工具,不仅可以用来信息收集和枚举,也可以作为一个漏洞探测器或安全扫描器使用。Nmap 适用于Windows,Linux,Macintosh 等主流操作系統,功能强大,然而在处理返回结果时,由于不同参数的返回结果不同,导致需要使用程序来对返回结果进行处理,让Nmap 扫描的结果能够更加直观。

处理方法

使用python 对Nmap 进行调用,通过处理参数,对返回结果进行解析,让使用者只需要调用函数即可获取所需结果。编写的程序包括对于Nmap 的调用以及结果处理两部分,方便使用者获取Nmap 的返回信息

1. 调用Nmap

首先枚举Nmap 所在位置,通过Nmap V来判断Nmap是否存在以及获取版本,判断逻辑如图所示:

对用户输入参数进行处理,通过subprocess 启动一个新进程来使用Namp 并且获取返回结果。

2. 对返回结果进行处理

通过communicate 获取返回结果与报错,对报错进行处理,对于Nmap 的扫描结果,首先处理编码,保证后续处理不会因为编码报错,如下图所示:

之后对于返回的结果如端口状态、IP 和Mac 地址等逐个进行正则匹配,获取对应参数,并且保存到字典中,如图所示。

通过调用对应方法来获取对应值,例如all_hosts(),封装常用参数调用函数,方便调用,如图所示。

结果测试

通过导入类,指定Nmap 参数,获取参数等来实现结果处理,首先进行扫描,获取扫描参数,如图所示。

猜你喜欢

调用使用者编码
设计让您在喜爱的虚拟世界中自由奔跑
住院病案首页ICD编码质量在DRG付费中的应用
新型拼插休闲椅,让人与人的距离更近
高效视频编码帧内快速深度决策算法
基于Android Broadcast的短信安全监听系统的设计和实现
抓拍神器
利用RFC技术实现SAP系统接口通信
梦乡床
不断修缮 建立完善的企业编码管理体系
C++语言中函数参数传递方式剖析