简介
python-nmap是一个使用nmap进行端口扫描的python库,它可以很轻易的生成nmap扫描报告,并且可以帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。
可以看到python-nmap只有四个py文件(__init__.py, nmap.py, test.py, test_nmap.py),下面就一一进行解读
__init__.py
除去几十行的注释外,真正的代码只有四行,基本内容就是从同目录的nmap.py下导入一些基本信息:作者(__author__),版本(__version__),最后修改日期(__last_modification__),这些在nmap.py下都有写
test.py
test.py也只有简单的几行,运行时就是打印出本地的Host,猜测是用来测试是否可以利用nmap的扫描功能
nmap.py
nmap.py用于调用nmap的功能进行扫描,主要的扫描函数为PortScanner(object):
class PortScanner(object):
PortScanner类的英文注释就写着功能:PortScanner class allows to use nmap from python(PortScanner类允许在python使用nmap)
def __init__(self, nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', '/opt/local/bin/nmap')):
主要功能就是在nmap_search_path查找nmap的路径(从nmap_search_path可以看出在Windows下使用得自己添加路径)和初始化PortScanner模块,包括本机上nmap的路径(self._nmap_path),扫描的结果(self._scan_result),nmap的主版本(self._nmap_version_number), nmap的子版