python nmap模块详解_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笔记: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 ...

随机推荐

apache 配置rewrite模块,URL中隐藏index.php

打开httpd.conf 去掉下面的井号 #LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉 在网站根目录添加.htaccess Rew ...

QQ左侧滑动显示之按钮切换

上一篇为大家介绍了关于自定义属性设置方法,本篇我将为大家介绍一下如何通过按钮来控制Menu的显示和隐藏,为了达到这个效果我们需要在SlidingMenu中添加三个方法,用来达到实现上述效果的目的. 我 ...

获取exe目录

System.IO.Directory.GetCurrentDirectory()这个方法,会随着你的当前系统路径的改变而改变.比如你打开一个openFileDialog那么,再次获得路径就不对了.s ...

【UVA 11078】BUPT 2015 newbie practice #2 div2-A -Open Credit System

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102419#problem/A In an open credit system, the ...

poj 2185 (KMP)

完全不会啊…… 附一份题解:http://blog.sina.com.cn/s/blog_69c3f0410100tyjl.html var i,j,k,r,c,x:longint; ch:..,.. ...

乱译文档--Musca介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值