Python之——python-nmap的安装与常用方法说明
一、python-nmap安装
# yum -y install nmap #安装nmap工具
# 模块pip方式安装
# pip install nmap
# 模块源码安装
# wget http://xael.org/pages/python-nmap-0.6.1.tar.gz
# tar -zxvf python-nmap-0.6.1.tar.gz
# cd python-nmap-0.6.1
# python setup.py install
二、模块常用方法说明
这里我们主要接受python-nmap模块的两个常用类,一个是PortScanner()类,实现一个nmap工具的端口扫描功能封装;另一个为PortScannerHostDict()类,实现存储与访问主机扫描结果
1、PortScanner()类常用方法
1-1、scan()方法
- scan(self, hosts='127.0.0.1', ports=None, arguments='-sV')
方法,实现指定主机、端口、namp命令行参数的扫描。参数hosts为字符串类型,表示扫描的主机地址,格式可以用"scanme.nmap.org"、"192.116.0-255.1-127"、"216.163.128.20/20"表示; 参数ports为字符串类型,表示扫描的端口,可以用"22,53,110,143-4564"表示;参数namp命令行参数,格式为"-sU -sX -sC",例如:
- nm = nmap.PortScanner()
- nm.scan('192.168.209.121-122', '22,80')
1-2、command_line()方法
command_line(self)方法,返回的扫描方法映射到具体的nmap命令行,如:
- >>> nm.command_line()
- u'nmap -oX - -p 22,80 -sV 192.168.209.121-122'
1-3、scaninfo()方法
scaninfo(self)方法,返回nmap扫描信息,格式为字典类型,如:
- >>>nm.scanninfo()
- {'tcp':{'services':'22,80', 'method':'syn'}}
1-4、all_hosts()方法
all_hosts(self)方法,返回nmap扫描的主机清单,格式为列表类型,例如:
- ['192.168.209.121', '192.168.209.122']
2、PortScannerHostDict()类常用方法
2-1、hostname()方法
hostname(self)方法,返回扫描对象的主机名,如:
- >>> nm['192.168.209.121'].hostname()
'liuyazhuang'
2-2、state()方法
state(self)方法,返回扫描对象的状态,包括4中状态(up、down、unknown、skipped),如:
- >>> nm['192.168.209.121'].state()
'up'
2-3、all_protocols()方法
all_protocols(self)方法,返回扫描的协议,如:
- >>> nm['192.168.209.121'].all_protocols()
['tcp']
2-4、all_tcp()方法
all_tcp(self)方法,返回TCP协议扫描的端口,如:
- >>> nm['192.168.209.121'].all_tcp()
[22,80]
2-5、tcp()方法
tcp(self, port)方法,返回扫描TCP协议port(端口)的信息,如:
- >>> nm['192.168.209.121'].tcp(22)
- {'state':'open', 'reason':'syn-ack', 'name':'ssh'}
python操作nmap
1.简单的小案例
创建PortScanner实例,然后扫描159.239.210.26这个IP的20-443端口。
- import nmap
- nm = nmap.PortScanner()
- ret = nm.scan('115.239.210.26','')
- print ret
- 返回格式如下:
- {'nmap': {'scanstats':
- {'uphosts': '', 'timestr': 'Tue Oct 25 11:30:47 2016', 'downhosts': '', 'totalhosts': '', 'elapsed': '1.11'},
- 'scaninfo': {'tcp': {'services': '', 'method': 'connect'}}, 'command_line': 'nmap -oX - -p 20 -sV 115.239.210.26'},
- 'scan': {'115.239.210.26': {'status': {'state': 'up', 'reason': 'syn-ack'}, 'hostnames': [{'type': '', 'name': ''}],
- 'vendor': {}, 'addresses': {'ipv4': '115.239.210.26'},
- 'tcp': {20: {'product': '', 'state': 'filtered', 'version': '', 'name': 'ftp-data', 'conf': '', 'extrainfo': '',
- 'reason': 'no-response', 'cpe': ''}
- }
- }
- }
- }
2.内置方法:
还可以打印出简单的信息
- import nmap
- nm = nmap.PortScanner()
- print nm.scaninfo()
- # {u'tcp': {'services': u'20-443', 'method': u'syn'}}
- print nm.command_line()
- # u'nmap -oX - -p 20-443 -sV 115.239.210.26'
查看有多少个host
- print nm.all_hosts()
- # [u'115.239.210.26']
查看该host的详细信息
- nm['115.239.210.26']
查看该host包含的所有协议
- nm['115.239.210.26'].all_protocols()
查看该host的哪些端口提供了tcp协议
- nm['115.239.210.26']['tcp']
- nm['115.239.210.26']['tcp'].keys()
查看该端口是否提供了tcp协议
- nm['115.239.210.26'].has_tcp(21)
还可以像这样设置nmap执行的参数
- nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
更多操作请进官网http://xael.org/pages/python-nmap-en.html
Python之——python-nmap的安装与常用方法说明的更多相关文章
- python笔记:windows 下安装 python lxml
原文:http://blog.csdn.net/zhaokuo719/article/details/8209496 windows 环境下安装 lxml python 1.首先保证你的python ...
- 如何在windows下的Python开发工具IDLE里安装其他模块?
以安装Httplib2模块为例 1 下载模块 到 “https://code.google.com/p/httplib2/” 下载一款适合你的压缩包“httplib2-0.4.0.zip” 2 解压下 ...
- Python中MySQLdb模块的安装
安装 MySQLdb是Python语言访问mysql数据库的一个模块,如果你不确定自己的Python环境中是否已经安装了这个模块,可以打开Python shell,输入import MySQLdb,如 ...
- linux python升级和ipython的安装
==CentOS 6.X 自带的python版本是 2.6 , 由于工作需要,很多时候需要2.7版本.所以需要进行版本升级.由于一些系统工具和服务是对 Python 有依赖的,所以升级 Python ...
- python的egg包的安装和制作]
Defining Python Source Code Encodings Python egg 的安装 egg文件制作与安装 2011-06-10 14:22:50| 分类: python | ...
- python 使用 setup.py 方式安装及包的卸载
安装: 可通过 --home 或 --prefix 指定安装目录 --prefix=xx/xxx 选择安装目录 --record files.txt 记录所有安装文件的路径 ...
- Python各种模块下载及安装配置
方式1 在Python官网https://www.python.org/或者是github搜索进行下载 ,解压缩之后通过命令提示符进入已经解压缩文件夹根目录,输入下面的命令: python setup ...
- linux下Python网络编程框架-Twisted安装
Twisted是python下的用来进行网络服务和应用程序编程的框架,安装Twisted前需要系统预先安装有python. 一.安装Twisted http://twistedmatrix.com/R ...
- storm安装(2)ZeroMQ、JZMQ、Python、Java环境的安装
2.ZeroMQ安装 把安装本件zeromq-2.1.7.tar.gz拷贝到home文件路径下, 给文件加入权限 chmod +x /home/zeromq-2.1.7.tar.gz 解压文件 tar ...
随机推荐
- Python中使用python -m pip install --upgrade pip升级pip时老是不成功
场景 在使用python -m pip install --upgrade pip进行pip升级时,每次到最后就是报一大堆红色,最终升级不成功. 实现 使用默认的镜像源时间过长就会没响应,使用豆瓣的镜 ...
- (六十九)c#Winform自定义控件-垂直滚动条
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- SQLServer的网络协议
一.总结 1.SQL Server访问协议包括Shared Memory.Named Pipes.TCP/IP.VIA四种,多数应用系统都是通过TCP/IP协议访问数据库.安装数据库后需要启用TCP/ ...
- Kubernetes v1.16 发布 | 云原生生态周报 Vol. 20
作者:心贵.进超.元毅.心水.衷源.洗兵 业界要闻 Kubernetes v1.16 发布 在这次发布中值得关注的一些特性和 Feature: CRD 正式进入 GA 阶段: Admission We ...
- 算法与数据结构基础 - 图(Graph)
图基础 图(Graph)应用广泛,程序中可用邻接表和邻接矩阵表示图.依据不同维度,图可以分为有向图/无向图.有权图/无权图.连通图/非连通图.循环图/非循环图,有向图中的顶点具有入度/出度的概念. 面 ...
- 浅谈DanmakuView
今天简单介绍一下开源的弹幕引擎---danmakuView 使用之前在build.gradle里面添加下面这一条(目前我使用的工具是AndroidStudio 3.1.2) impleme ...
- 31 (OC)* 内存管理
31 (OC) 内存管理 一:内存管理黄金法则. 如果对一个对象使用了alloc.[Mutable]copy,retain,那么你必须使用相应的realease或者autorelease 二:内存管 ...
- net core WebApi——缓存神器Redis
目录 前言 Redis 使用 RedisUtil 测试 小结 @ 前言 中秋过完不知不觉都已经快两周没动这个工程了,最近业务需要总算开始搞后台云服务了,果断直接net core搞起,在做的中间遇到了不 ...
- Elasticsearch(9) --- 聚合查询(Bucket聚合)
Elasticsearch(9) --- 聚合查询(Bucket聚合) 上一篇讲了Elasticsearch聚合查询中的Metric聚合:Elasticsearch(8) --- 聚合查询(Metri ...
- Sping学习笔记(一)----Spring源码阅读环境的搭建
idea搭建spring源码阅读环境 安装gradle Github下载Spring源码 新建学习spring源码的项目 idea搭建spring源码阅读环境 安装gradle 在官网中下载gradl ...