python-nmap使用及详解


python-nmap使用及详解

python-nmap安装及配置

1.nmap安装:

  这个不用多说了吧,直接官网下载安装包,根据提示安装就行了,我把官网地址给大家:Nmap: the Network Mapper - Free Security Scanner

2.python中安装模块

  安装模块的话,我们安装python-nmap模块。正常使用pycharm的话,会有两个跟nmap相关的,一个是nmap,另一个是python-nmap

我们选择python-nmap模块

我用的是pycharm安装的,如果是命令行模式就(cmd),直接 pip install  python-nmap即可

 3.可以实现的功能:

    • 主机存活状态:根据目标的反应来确定它是否处于开机并联网的状态。
    • 开放的端口扫描 :根据目标端口的反应来判断它是否开放。
    • 服务及版本检测:检测它运行服务的服务类型和版本。
    • 操作系统检测: 识别主机的操作系统

NOTES:python使用namp的话,我们需要安装python-nmap模块,而不是nmap模块,安装nmap模块的话会出现下面这种现象:

Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: module 'nmap' has no attribute 'PortScanner‘
,两个模块都下载的话,可能导致运行不了,这个时候咱们需要把他们两个都卸载,再重新安装python-nmap即可

使用:

  在我们介绍nmap模块之前先跟大家说一下这个类:Portscanner()

    PortScanner时python-nmap模块中非常重要的类,实现nmap扫描有三个类,本文主要针对PortScanner讲解

  提这个的原因是小编自己找了好久,一直不知道自己的为什么不能运行,直到。。大佬喷我菜鸡,告诉我不行的话就加上nmap的地址。。。汗颜

  所以说你们要是碰到这个问题的话,可以这样来:  

  nm=nmap.PortScanner(nmap_search_path=('nmap', r"D:\Nmap\nmap.exe"))标注的地方是你们自己nmap安装的地址奥

接下来开始介绍用法:
拿扫描一个网段的主机存活状态来说
1.导入库
   
 import nmap
2.使用PortScanner
    nm=nmap.PortScanner('nmap',r"D:\Nmap\nmap.exe")
3.调用函数scan
    nm.scan('10.0.55.15','10-100')
scan中的参数详解
scan(self,hosts=‘主机地址(也可以写成整个网段)’,ports=’端口号‘,arguments=’扫描方式’,callback=None,sudo=False)
这里面的callback是以(host,scan_data)为参数的函数,也就是整个网段的扫描
用到的函数:

 了解了这些,大概的思路不就出来了么,接下来放代码!!

 

#导入库
import nmap
#前置信息
nm=nmap.PortScanner(nmap_search_path=('nmap', r"D:\Nmap\nmap.exe"))
nm.scan('10.55.0.15/24',)#扫描整个网段得主机的20-100端口
nm.command_line()#本次扫描的命令
nm.all_hosts()#扫描的所有主机
nm.scaninfo()#扫描的信息列出一个结构
nm.csv()#返回值用csv输出
#print(nm.scaninfo())
for  host in nm.all_hosts():
    print('=================')
    print(host)#ip地址
    print('State : %s' % nm[host].state())#主机存活状态

 

 结果如下:

 

 

今天的分享就先到这里了!

这是最基本的扫描判断主机是否存活,具体的扫描端口,服务等,稍后将会发布,大家一起学习呀!!!

 















免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM