我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python-nmap使用方法(pyth

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python-nmap使用方法(pyth

nmap是一个知名的端口扫描工具,超级好用,可调的参数也多(但需懂得网络相关知识,否则就别费精神研究参数了)

一般在linux上使用,当然,它也有windows的版本,但不在这里展开。


关于nmap的用法,可以参考在线手册 https://nmap.org/book/man-briefoptions.html

python-nmap 实际是在python里面调用底层的nmap,所以第一步是先安装系统的nmap,再装python-nmap


以下是安装步骤

本文使用的系统是centos 6,python的版本是3.5.2


1)安装系统的nmap

# yum install nmap -y

......

Package 2:nmap-5.51-6.el6.x86_64 already installed and latest version

Nothing to do

由于我已经装过了,所以提示已安装

验证一下

# nmap -v

Starting Nmap 5.51...


2)安装python-nmap

[root@Lab2 ~]# pip3 install python-nmap

Requirement already satisfied: python-nmap in ....

同样已经装过


以下是python3中使用(https://xael.org/pages/python-nmap-en.html)

最基本的用法,也是串行的方式,请自行去上面的网站上查询

这里说的是异步方式,要使用python来进行扫描,我相信大多是批量扫描,否则没必要用python,直接在命令行下执行nmap

python-nmap有两种异步的使用方式,根据源码来看,实际上就是多进程。


第一种:

# 先定义一个回调方法,参数必须是两个,名字随便取,这里用的是host和scan_result

import nmap
def callback_result(host, scan_result):
    print('------------------')
    print(host, scan_result)
    
# 异步Scanner
nm = nmap.PortScannerAsync()

# 扫描参数,第一个是扫描对象,可以是单个IP、网段、IP-IP诸多写法,详细自己查手册或者百度
# 第二个是ports参数,同样写法多样
# 第三个arguments参数,这个就有讲究了,假如不写这个参数,默认会带一个-sV,然后你扫描一个ip都能等到天荒地老,关于-sV的含义在文后给出作为参考。在这里,我们给一个-sS,或者可以给个空白字符串也是可以的
# 第四个是指定回调函数
nm.scan('192.168.1.0/24', ports='22,80,8888', arguments='-sS', callback=callback_result)

# 以下是必须写的,否则你会看到一运行就退出,没有任何的结果
while nm.still_scanning():
    print("sleep")
    nm.wait(2)



第二种:

import nmap
nm = nmap.PortScannerYield()
for result in nm.scan('192.168.1.0/24', ports='22,80,8888,8080,443', arguments="-sS"):
    print(result)

这种调用方式简单很多,也是推荐的写法。得到的结果

 ('192.168.1.1', {'scan': {'192.168.1.1': {'tcp': {80: {'extrainfo': '', 'state': 'filtered', 'name': 'http', 'product': '', 'reason': 'no-response', 'conf': '3', 'cpe': '', 'version': ''}, 8080: {'extrainfo': '', 'state': 'filtered', 'name': 'http-proxy', 'product': '', 'reason': 'no-response', 'conf': '3', 'cpe': '', 'version': ''}, 443: {'extrainfo': '', 'state': 'closed', 'name': 'https', 'product': '', 'reason': 'reset', 'conf': '3', 'cpe': '', 'version': ''}, 22: {'extrainfo': '', 'state': 'closed', 'name': 'ssh', 'product': '', 'reason': 'reset', 'conf': '3', 'cpe': '', 'version': ''}, 8888: {'extrainfo': '', 'state': 'open', 'name': 'sun-answerbook', 'product': '', 'reason': 'syn-ack', 'conf': '3', 'cpe': '', 'version': ''}}, 'vendor': {}, 'status': {'state': 'up', 'reason': 'timestamp-reply'}, 'addresses': {'ipv4': '192.168.1.1'}, 'hostnames': [{'type': '', 'name': ''}]}}, 'nmap': {'scanstats': {'uphosts': '1', 'downhosts': '0', 'elapsed': '1.29', 'totalhosts': '1', 'timestr': 'Wed Jun 13 17:25:28 2018'}, 'command_line': 'nmap -oX - -p 22,80,8888,8080,443 -sS 192.168.1.1', 'scaninfo': {'tcp': {'services': '22,80,443,8080,8888', 'method': 'syn'}}}})


如何分析使用result,各位自己发挥吧, 它其实就是个元组,内嵌了字典


SERVICE/VERSION DETECTION:

-sV: Probe open ports to determine service/version info # 探测端口的服务、版本信息


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python-nmap使用方法(pyth

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python-nmap使用方法(pyth

nmap是一个知名的端口扫描工具,超级好用,可调的参数也多(但需懂得网络相关知识,否则就别费精神研究参数了)一般在linux上使用,当然,它也有windows的版本,但不在这里展开。关于nmap的用法,可以参考在线手册 https://nm
2023-01-31

Zabbix api的使用方法(pyth

Zabbix API简介时间2013-12-21作者 itnihao邮箱 itnihao@qq.com博客 http://www.itnihao.com如需引用,请注明以上信息,谢谢合作       Zabbix API具有重要的功能,为第
2023-01-31

python使用nmap端口扫描

第一版:只支持以逗号分隔的端口,不支持端口范围   Firstly:      sudo apt-get install nmapSecondly:pip install python-nmapThirdly:copy the code b
2023-01-31

Python学习笔记(二):使用Pyth

1.目的:2.安装XlsxWriter3.xlsxwriter常用功能:4.在Excel中写数据:4.1 一维表格生成1.目的:用xlwt来生成excel的,生成的后缀名为xls,在xlwt中生成的xls文件最多能支持65536行数据。 p
2023-01-31

被弃用的Python2中的方法和Pyth

1、cmp(x,y)方法,python2中用于比较x与y的值。python3中用operator中的 lt,le,eq,ne,ge,gt 进行比较,如下:lt(a, b) 相当于 a < ble(a,b) 相当于a<=beq(a,b) 相当
2023-01-31

怎么使用Python-nmap网络扫描和嗅探工具包

这篇文章将为大家详细讲解有关怎么使用Python-nmap网络扫描和嗅探工具包,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。nmap概念NMap,也称为网络映射器,最初是Linux下的网络扫
2023-06-02

python:__add__方法使用

#!/usr/bin/pythonclass Vector:   def __init__(self, a, b):      self.a = a      self.b = b   def __str__(self):      ret
2023-01-31

Python中方法链的使用方法

方法链(method chaining)是面向对象的编程语言中的一种常见语法,可以让开发者在只引用对象一次的情况下,对同一个对象进行多次方法调用。举个例子: 假设我们有一个Foo类,其中包含有两个方法——bar和baz。 我们创建一个Foo
2022-06-04

Python printf的使用方法

age = 4 name = ‘hmm’ print(‘my name is ‘,name,’age is ‘,age) #第一种方法。 my name is hmm age is 4 p
2023-01-31

python openpyxl的使用方法

目录生成新Excel创建Sheet的三种方法给Sheet中某cell赋值赋值cell的值读取Excel加载文件获取sheet一个例子首先创建一个tab页收集数据保存总成绩总结生成新Excelfrom openpyxl import Work
2022-06-02

python的pip使用方法

使用pip下载软件很方便在cmd界面进入python的Scripts所在的文件夹,然后使用 pip install 工具包   即可下载如  pip install numpy有时需要更新pip版本如图所示还可以安装  .whl的文件  下
2023-01-31

python int()的使用方法

这篇文章主要介绍python int()的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python int函数用于将一个字符串或数字转换为整型,该函数的使用语法是“class int(x, base=10)
2023-06-06

Python魔法方法如何使用

这篇“Python魔法方法如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python魔法方法如何使用”文章吧。pyt
2023-07-04

Python中super方法的使用

本篇内容主要讲解“Python中super方法的使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中super方法的使用”吧!前言super() 的入门使用在类的继承中,如果重定义某
2023-06-02

python解包的使用方法

这篇文章主要介绍python解包的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录