一、在python3以后的版本中,nmap包中无法实现相应功能呢,通过pip search nmp 找到了python3-nmap包。此包在安装的时候会有两个依赖包,可能是我个人网速的问题,在使用pip install python3-nmap时总是提示出错,因此,我就把三个包一起下载下来进行安装
1、Babel-2.8.0-py2.py3-none-any.whl
2、sphinx_rtd_theme-0.4.3-py2.py3-none-any.whl
3、python3_nmap-1.4.1-py3-none-any.whl https://files.pythonhosted.org/packages/a7/a7/3baa77649bc103843c75c80cd89be588ea87557e5e85290495cbe46d819f/python3_nmap-1.4.1-py3-none-any.whl
按照1到3的顺序依次使用pip install 进行安装
二使用python3-nmap的源码
import nmap3
def findTgtHosts(subNet):
nmapscan =nmap3.Nmap()
results = nmapscan.nmap_subnet_scan(subNet,'-p 445')
tgtHosts=[]
for line in results:
ports = line['ports']
for port in ports:
if (port['state']=='open'):
tgtHosts.append(line['addr'])
#print(tgtHosts)
return tgtHosts
for循环为什么是在这种处理数据的方式,自己使用print(line)将结果输出看下就明白了。