Python语言模块学习----nmap模块
小标 2018-10-09 来源 : 阅读 2368 评论 0

摘要:本文主要向大家介绍了Python语言模块学习----nmap模块,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言模块学习----nmap模块,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

安装nmap模块:1pip install python_nmanmap模块说明:python-nmap是一个帮助使用nmap端口扫描器的python库。它允许轻松操纵nmap扫描结果,并且将是一个完美的选择,为需要自动完成扫描任务的系统管理员提供的工具并报告。它也支持nmap脚本输出。nmap模块类:ET:Python的轻量级XML支持PortScanner:端口扫描PortScannerAsync:异步进行端口扫描PortScannerError:nmap的异常错误类PortScannerHostDict:用于存储和访问主机扫描结果的特殊小类PortScannerYield:通过生成器使用Python中的nmapProcess:表示在单独的过程中运行的活动,应该是控制扫描进程之类的convert_nmap_output_to_encoding:编码csv:CSV操作模块io:nmap:os:re:shlex:subprocess:sys:看大概意思就知道,我们这里主要是用PortScanner、PortScannerError、PortScannerHostDict这三个类PortScanner:普通端口扫描类初始化PortScanner类,首先看看该模块的__init__构造函数说明。检测系统和nmap版本上的nmap,如果在路径中找不到nmap,可能会引发PortScannerError异常1__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可执行文件,需要你手动修改此参数默认值即可。该类里的方法说明:123456789101112131415161718192021222324252627all_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()'\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\r\ncpe:/o:microsoft:windows_10:::iot_core\r\n\r\n\r\n

\r\n

\r\n

\r\n\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():返回主机状态    

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved