广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python模块学习----nmap模块
  • 814
分享到

python模块学习----nmap模块

模块pythonnmap 2023-01-31 05:01:35 814人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

安装nmap模块:pip install python_nmanmap模块说明:Python-nmap是一个帮助使用nmap端口扫描器的python库。它允许轻松操纵nmap扫描结果,并且将是一个完美的选择,为需要自动完成扫描任务的系统管理

安装nmap模块:

pip install python_nma


nmap模块说明:

Python-nmap是一个帮助使用nmap端口扫描器的python库。它允许轻松操纵nmap扫描结果,并且将是一个完美的选择,为需要自动完成扫描任务的系统管理员提供的工具并报告。它也支持nmap脚本输出。


nmap模块类:

ET:Python的轻量级XML支持

PortScanner:端口扫描

PortScannerAsync:异步进行端口扫描

PortScannerError:nmap的异常错误类

PortScannerHostDict:用于存储和访问主机扫描结果的特殊小类

PortScannerYield:通过生成器使用Python中的nmap

Process:表示在单独的过程中运行的活动,应该是控制扫描进程之类的

convert_nmap_output_to_encoding:编码

csv:CSV操作模块

io

nmap:

os:

re:

shlex:

subprocess:

sys:


看大概意思就知道,我们这里主要是用PortScanner、PortScannerError、PortScannerHostDict这三个类


PortScanner:普通端口扫描类

初始化PortScanner类,首先看看该模块的__init__构造函数说明。

检测系统和nmap版本上的nmap,如果在路径中找不到nmap,可能会引发PortScannerError异常

__init__(self, nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', '/opt/local/bin/nmap'))

如果你调用PortScanner模块异常,可能就是nmap_search_path默认路径里没找到你安装的nmap可执行文件,需要你手动修改此参数默认值即可。


该类里的方法说明:

all_hosts():返回所有主机的排序列表

analyse_nmap_xml_scan(nmap_xml_output=None, nmap_err='', nmap_err_keep_trace='', nmap_warn_keep_trace=''):分析NMAP xml扫描输出
param nmap_xml_output:要分析的xml字符串

command_line():返回用于扫描的命令行

csv():将CSV输出作为文本返回

get_nmap_last_output():以原始文本返回nmap的最后文本输出

has_host(host):如果主机有结果则返回True,否则返回False

listscan(hosts='127.0.0.1'):不要扫描,但解释目标主机并返回一个主机列表

nmap_version():如果检测到返回nmap版本

scan(hosts='127.0.0.1', ports=None, arguments='-sV', sudo=False):扫描指定的主机
如果nmap输出不是xml,可能会引发PortScannerError异常
hosts:需要扫描的IP或IP段
ports:扫描的端口
arguments:nmap的参数字符串'-sU -sX -sC'
sudo:是否使用sudo启动nmap

scaninfo():返回scaninfo结构{'tcp': {'services': '22', 'method': 'connect'}}

scanstats():返回scanstats结构{'uphosts': '3', 'timestr': 'Thu Jun  3 21:45:07 2010', 'downhosts': '253', 'totalhosts': '256', 'elapsed': '5.79'}


实例演示:

>>> nm = nmap.PortScanner() #实例化普通端口扫描对象nm
>>> nm.nmap_version() #看看当前系统nmap版本
(7, 70) #当前版本为nmap7.7

>>> date = nm.scan('127.0.0.1','22','-sV') #进行扫描,会弹出nmap cmd窗口,会一直等待扫描结束,然后返回JSON格式的扫描结果date
{'nmap': {'command_line': 'nmap -oX - -p 22 -sV 127.0.0.1', 'scaninfo': {'tcp': {'method': 'syn', 'services': '22'}}, 'scanstats': {'timestr': 'Fri Apr 13 10:43:29 2018', 'elapsed': '8.71', 'uphosts': '1', 'downhosts': '0', 'totalhosts': '1'}}, 'scan': {'127.0.0.1': {'hostnames': [{'name': '', 'type': ''}], 'addresses': {'ipv4': '127.0.0.1'}, 'vendor': {}, 'status': {'state': 'up', 'reason': 'localhost-response'}, 'tcp': {22: {'state': 'open', 'reason': 'syn-ack', 'name': 'ssh', 'product': 'Microsoft windows IoT sshd', 'version': '1.100', 'extrainfo': 'protocol 2.0', 'conf': '10', 'cpe': 'cpe:/o:microsoft:windows_10:::iot_core'}}}}}
>>> nm.all_hosts()
['127.0.0.1']
>>> nm.command_line()
'nmap -oX - -p 22 -sV 127.0.0.1'
>>> nm.csv()
'host;hostname;hostname_type;protocol;port;name;state;product;extrainfo;reason;version;conf;cpe\r\n127.0.0.1;;;tcp;22;ssh;open;Microsoft Windows IoT sshd;protocol 2.0;syn-ack;1.100;10;cpe:/o:microsoft:windows_10:::iot_core\r\n'
>>> nm.get_nmap_last_output()
'<?xml version="1.0" encoding="UTF-8"?>\r\n<!DOCTYPE nmaprun>\r\n<?xml-stylesheet href="file:///d:/Program Files (x86)/Nmap/nmap.xsl" type="text/xsl"?>\r\n<!-- Nmap 7.70 scan initiated Fri Apr 13 10:43:20 2018 as: nmap -oX - -p 22 -sV 127.0.0.1 -->\r\n<nmaprun scanner="nmap" args="nmap -oX - -p 22 -sV 127.0.0.1" start="1523587400" startstr="Fri Apr 13 10:43:20 2018" version="7.70" xmloutputversion="1.04">\r\n<scaninfo type="syn" protocol="tcp" numservices="1" services="22"/>\r\n<verbose level="0"/>\r\n<debugging level="0"/>\r\n<host starttime="1523587408" endtime="1523587409"><status state="up" reason="localhost-response" reason_ttl="0"/>\r\n<address addr="127.0.0.1" addrtype="ipv4"/>\r\n<hostnames>\r\n</hostnames>\r\n<ports><port protocol="tcp" portid="22"><state state="open" reason="syn-ack" reason_ttl="64"/><service name="ssh" product="Microsoft Windows IoT sshd" version="1.100" extrainfo="protocol 2.0" ostype="Windows 10 IoT Core" method="probed" conf="10"><cpe>cpe:/o:microsoft:windows_10:::iot_core</cpe></service></port>\r\n</ports>\r\n<times srtt="0" rttvar="5000" to="100000"/>\r\n</host>\r\n<runstats><finished time="1523587409" timestr="Fri Apr 13 10:43:29 2018" elapsed="8.71" summary="Nmap done at Fri Apr 13 10:43:29 2018; 1 IP address (1 host up) scanned in 8.71 seconds" exit="success"/><hosts up="1" down="0" total="1"/>\r\n</runstats>\r\n</nmaprun>\r\n'
>>> nm.scaninfo()
{'tcp': {'method': 'syn', 'services': '22'}}
>>> nm.scanstats()
{'timestr': 'Fri Apr 13 10:43:29 2018', 'elapsed': '8.71', 'uphosts': '1', 'downhosts': '0', 'totalhosts': '1'}
>>>


PortScannerHostDict类说明:

该类里的方法说明:

all_ip():返回ip端口列表

all_protocols():返回所有扫描协议的列表
>>> nm['127.0.0.1'].all_protocols()
['tcp']

all_sctp():返回sctp端口列表

all_tcp():返回tcp端口列表
>>> nm['127.0.0.1'].all_tcp()
[22]

all_udp():返回udp端口列表

has_ip(port):如果ip端口具有info,则返回true,否则返回False

has_sctp(port):如果sctp端口有info,则为真,否则为False

has_tcp(port):如果tcp端口有info,则返回true,否则返回False

has_udp(port):如果udp端口有info,则返回true,否则返回False

hostname():返回用户记录或列表主机名的第一个主机名

hostnames():返回主机名列表

ip(port):返回信息的IP端口

sctp(port):返回信息的sctp端口

state():返回主机状态

tcp(port):返回tcp端口的信息
>>> nm['127.0.0.1'].state()
'up'

udp(port):返回udp端口的信息

uptime():返回主机状态




--结束END--

本文标题: python模块学习----nmap模块

本文链接: https://www.lsjlt.com/news/189222.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • python模块学习----nmap模块
    安装nmap模块:pip install python_nmanmap模块说明:python-nmap是一个帮助使用nmap端口扫描器的python库。它允许轻松操纵nmap扫描结果,并且将是一个完美的选择,为需要自动完成扫描任务的系统管理...
    99+
    2023-01-31
    模块 python nmap
  • Python模块学习之IPy模块
    IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能、可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括网段、网络掩码、广播地址、子网数、IP类型等。Python提供了一个强大的第...
    99+
    2023-01-31
    模块 Python IPy
  • Python 模块学习
        模块学习: http://wsyht90.blog.51cto.com/9014030/1845737 1、getpass 2、os 3、sys 4、subprocess 5、hashlib 6、json 7、pickle 8、sh...
    99+
    2023-01-31
    模块 Python
  • python模块学习
    系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象. sys.st...
    99+
    2023-01-31
    模块 python
  • python模块学习(queue模块的Q
    学习版本3.5.2 PriorityQueue类和LifoQueue类继承Queue类然后重写了_init、_qsize、_put、_get这四个类的私有方法 Queue:先进先出队列的同步实现,通过双向列表实现的 # Initi...
    99+
    2023-01-31
    模块 python queue
  • Python学习-pycurl模块
    pycurl是一个用c语言编写的libcurl Python实现,功能非常强大,支持操作协议有FTP,HTTP,HTTPS,TELNET等。模块的常用方法说明:close()方法,对应libcurl包中的curl_easy_cleanup方...
    99+
    2023-01-31
    模块 Python pycurl
  • python学习-psuti模块
    psutil(进程和系统实用程序)是一个跨平台的库,用于 在Python中检索有关运行进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,分析和限制流程资源以及运行流程的管理。它实现了UNIX命令行工具提供的许多...
    99+
    2023-01-31
    模块 python psuti
  • python模块学习(1)
    模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个 模块里能让你的代码更好用,更易懂。模块也是Python对象,具有随机的名字属性用来绑定或引用。简单地说,模块就是一个保存了Python代码的文件。模块能定义函数,类和变...
    99+
    2023-01-31
    模块 python
  • python学习-OS模块
    OS模块是python内建模块,主要是对大量文件和大量路径进行操作os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'...
    99+
    2023-01-31
    模块 python OS
  • Python学习—json模块
    json模块 四个常用方法 son.dumps() 将python对象编码成为json的字符串格式(最常用的是字典,列表集合等都可以) json.dump() 将python对象编码成为json的字符串格式并写入文件 json...
    99+
    2023-01-31
    模块 Python json
  • python optparse模块学习
    本文参考:http://docs.python.org/2/library/optparse.htmlPython 有两个内建的模块用于处理命令行参数:一个是 getopt,getopt只能简单处理 命令行参数。另一个是 optparse,...
    99+
    2023-01-31
    模块 python optparse
  • python学习-smtplib模块
     python的stmplib模块可以实现邮件的发送功能,可以模拟一个smtp客户端。在python2.3或者更高版本默认自带smtplib模块,无需额外安装。一、smtplibi模块的常用类与方法    smtp类定义:smtplib([...
    99+
    2023-01-31
    模块 python smtplib
  • Python模块学习--email
    可以使用Python的email模块来实现带有附件的邮件的发送。 SMTP (Simple Mail Transfer Protocol)   邮件传送代理 (Mail Transfer Agent,MTA) 程序...
    99+
    2023-01-31
    模块 Python email
  • Python pycurl模块 学习
    pycurl模块的安装方法如下: easy_install pycurl #easy_install安装方法 pip install pycurl #pip安装方法 #源码安装方法 # 要求curl-config包支持,需要源码方式重新安...
    99+
    2023-01-31
    模块 Python pycurl
  • python hashlib模块学习
    目录 hashlib 模块 破解密码 hmac 模块 1.干嘛用的: 对字符进行加密,其实就是一个自定义的字符编码表,...
    99+
    2023-01-31
    模块 python hashlib
  • python学习-re模块
    Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,在文本解析、复杂字符串分析和信息提取时是一个非常有用的工具,下面我主要总结了re的常用方法。1.re的简介    使用python...
    99+
    2023-01-31
    模块 python
  • Python wmi 模块的学习
    # -*- coding:utf-8 -*- import datetime import os import wmi import time import _winreg import pythoncom import threadin...
    99+
    2023-01-31
    模块 Python wmi
  • python模块之paramiko学习<
    简介: paramiko是python(2.2或更高)的模块,遵循SSH2协议实现了安全(加密和认证)连接远程机器。 安装所需软件包: http://ftp.dlitz.net/pub/dlitz/crypto...
    99+
    2023-01-31
    模块 python paramiko
  • Python学习—paramiko模块实
    paramiko模块 paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。 import paramiko # ssh root@ip # 创建一个ssh对象 ...
    99+
    2023-01-31
    模块 Python paramiko
  • Python学习之MySQLdb模块
    CentOS下安装sudo yum install MySQL-python可以参考http://www.mikusa.com/python-mysql-docs/index.html  获取更多信息MySQL-python 为Python...
    99+
    2023-01-31
    模块 Python MySQLdb
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作