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 “”, line 1, in 
 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)为参数的函数,也就是整个网段的扫描

用到的函数:

用python使用nmap python nmap模块_用python使用nmap

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

#导入库
 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())#主机存活状态

结果如下:

用python使用nmap python nmap模块_用python使用nmap_02

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

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