这是一个python类,用于使用nmap并访问python3的扫描结果

python-nmap的Python项目详细描述


====
python nmap
===


它允许轻松操作nmap扫描结果,对于希望自动扫描任务和报告的系统管理员来说,它将是一个完美的工具。它还支持nmap脚本输出。

/usr/bin/env python
import nmap import nmap.py module
nm=nmap.portscanner()实例化nmap.portscanner对象
nm.scan('127.0.0.1','22-443')扫描主机127.0.0.1,端口从22到443
nm.command_line()#获取用于扫描的命令行:nmap-ox--p 22-443 127.0.0.1
nm.scaninfo();获取nmap扫描信息{'tcp':{'services':'22-443','method':'connect'}
nm.all庠hosts()获取扫描的所有主机
nm['127.0.0.1'].hostname()获取主机127.0.0.1的一个主机名,通常用户记录
nm['127.0.0.1'].hostnames()获取主机127.0.0.1的主机名列表,作为dict的列表
[{name':'host name 1',type':'ptr'},{name':'hostname2','type':'user'}
nm['127.0.0.1'].hostname()获取主机127.0.0.1的主机名
nm['127.0.0.1'].state()获取主机127.0.0.1的状态(up down unknown skipped)
nm['127.0.0.1'].all_u protocols()获取所有扫描的协议['tcp',"udp"]in(ip tcp udp sctp)
nm['127.0.0.1']['tcp'].keys()获取TCP协议的所有端口
nm['127.0.0.1'].all_tcp()获取TCP协议的所有端口(排序版本)
nm['127.0.0.1'].all获取UDP协议的所有端口(排序版本)
NM['127.0.0.1'].all庠IP()庠获取IP协议的所有端口(排序版本)
NM['127.0.0.1'].all庠SCTP()庠获取SCTP协议的所有端口(排序版本)
NM['127.0.0.1'].has庠TCP(22)庠有主机127.0.0.1上端口22/TCP的任何信息
NM['127.0.0.0.1']['TCP'][22]获取关于127.0.0.0.0.1主机上TCP端口22的信息
NM['127.0.0.0.0.1'].TCP(22)获取关于127.0.0.0.0.0.1主机上TCP端口22的信息
NM['127.0.0.0.0.1']['TCP'][22]['state'];获取127.0.0.0.0.0.1主机上TCP端口22/TCP端口22/TCP的状态(打开




一更有用的示例:
对于以nm为单位的主机。all_host s():
print('-------------------------------------')
print('host:%s(%s)'%(主机,nm[host].hostname())
print('state:%s%nm[host].state())


for proto in nm[host].all_protocols():
print('--')
print('protocol:%s%proto)

lport=nm[host][proto].keys()
lport.sort()
对于lport中的端口:
print('端口%s\t状态%s'%(端口,nm[主机][协议][端口]["状态])

print('---------------------------')
192.168.1.0/24:
nm.scan(hosts='192.168.1.0/24',arguments='-n-sp-pe-pa21,23,803389')
hosts_list=[(x,nm[x]['status']['state'])for x in nm.all_hosts()]
for host,status in hosts_list:
打印('{0}:{1})。格式(host,status))



打印‘---------------------------------’
异步使用portscannersync
nma=nmap.portscannersync()
def回调结果(主机,扫描结果):
打印‘--------’
打印主机,扫描结果
nma.scan(hosts='192.168.1.0/30',arguments='-sp',callback=回调结果)
,而nma.still\scanning():
print("等待"…"
nma.wait(2)您可以做任何想做的事情,但我选择在扫描结束后等待




主页
===



http://xael.org/norman/python/python nmap/


==

<2016/07/29(v0.6.1)
-修复bug 22扫描中的unbundlocalerror progressive
-修复错误23扫描失败,出现nmap警告
-修复错误20:修复空主机名<;hostnames>;导致空csv输出的值
-fix bug 18:print(nm.csv())不返回任何结果
-fix bug 19:nmap程序未在路径中找到
-fix bug 17:hostname不再报告



2016/03/15(v0.6.0)
-添加有关nmap特殊许可证的信息
-与nmap一起分发python nmap的许可精度

2016/03/15(v0.5.2)
-将主机名添加到csv导出

2015/12/05(v0.5.0-1)
-更新示例。py


2015/11/18(v0.5.0)
-关闭错误:
-11只显示一个osclass/osmatch,而不是多个

-数据结构的更改:
-osmatch是osclass的列表
-osclass是dictionary的列表
-added cpe是string的列表
-added portused是dictionary的列表

{'addresses':{'ipv4':'127.0.0.1'},
'hostnames':[],
'osmatch':[{'accurity':'98',
'line':'36241',
'name':'juniper sa4000 ssl vpn gateway(ive os 7.0)',
'osclass':[{'accurity':'98',
'cpe':['cpe:/h:juniper:sa4000',
'cpe:/o:juniper:ive-os:7',
'osfamily':'ive-os',
'osgen':'7.x',
'类型':'防火墙',
'供应商':'刺柏'}},
{'准确性':'91',
'行':'17374',
'名称':'Citrix访问网关VPN网关',
"osclass":[{"accurity":"91",
"cpe":[],
"osfamily":"embedded",
"osgen":无,
"type":"proxy server",
'vendor':'citrix'}],
'portused':[{'portid':'443','proto':'tcp','state':'open'},
{'portid':'113','proto':'tcp','state':'closed'},
'status':{'reason':'syn ack','state':'up'},
'tcp':{113:{'conf':'3',
'cpe':'',
'extrainfo':'',
'name':'ident',
'product':'',
'reason':'conn拒绝',
'state':'closed',
'version':'},
443:{'conf':'10',
'cpe':',
'extrainfo':',
'name':'http',
'product':'juniper sa2000或sa4000 vpn网关http config',
'reason':'syn ack',
'状态':'打开',
'版本':'},
'供应商':{}
`````

2015/11/17(v0.4.7)
-关闭错误:
-10尝试分析'osclass'、'osmatch'
删除的地址、主机名、状态、供应商、osclass、正常运行时间、osmatch
from all_protocols()
-将shebang line从python3更改为python2


2015/11/13(v0.4.6)
-关闭错误:
-10尝试解析"osclass"时出错,'osmatch'

2015/10/25(v0.4.5)
-关闭错误:
-9不能在扫描功能传递带有Unicode字符串的端口

2015/10/17(v0.4.4)
-关闭错误:
-8 IPv6异步扫描仪不工作

2015/09/11(v0.4.3)
-更改"获取最新联机"版本的URL


2015/09/11(v0.4.2)
-关闭错误:
-7:空主机名错误
-6:如果重定向,Windows支持关闭FDSstdin/stdout/stderr

2015/08/21(v0.4.1)
-关闭错误:
-5:每个主机只存储一个主机名
-add hostnames()方法,该方法将主机名列表返回为
dict[{name':'host name 1',type':'ptr'},{name':'hostname2','type':'user'}


2015/08/01(v0.4.0)
-关闭错误:
-2:在子进程中使用关闭FDS。popen
-3:使用xml.dom分析XML时内存泄漏。minidom
-更正分析OSClass时的错误
-为案例测试添加noests
-在docstring

2015/05/08(v0.3.7)
-添加用于扫描的sudo参数(来自scupython的想法)

2015/05/08(v0.3.6)
-更正问题7:Windows下的问题

2015/05/08(v0.3.5)
-更正所有协议中的错误()
-更正问题8:portscannerasync在Windows中不起作用…

2014/06/22(v0.3.4)
-使用生成器添加portscanneryield类
>;>;nm=nmap.portscanneryield()
>;>;对于i in nm.scan('127.0.0.1/24','22-25'):
>;>;打印(i)

2014/03/13(v0.3.3)
-移动文件示例.py
-添加函数convert_nmap_output_to_encoding
-添加MAC地址的供应商

<2013/09/23(v0.3.2)
-在[主机][协议][端口]['cpe']键下向CPE值添加帐户

2013/07/27(v0.3.1)
-错误修正了robert bost提出的portscannerasync.scan中的回调断言


2013/06/23(v0.3.0)
-增加了对nmap脚本引擎的支持
>;>;r=nm.scan(hosts='127.0.0.1',ports='139',arguments="-sc")
>;>;打印(nm._scan_result['scan']['127.0.0.1']['hostscript'])


2013/02/24(v0.2.7)
-在主机扫描结果中添加了包含IPv4、MAC和其他地址的地址块:
nm=nmap.portscanner()
r=nm.scan(参数='-ss-p t:22',hosts='192.168.1.3')
打印r['scan'['192.168.1.3']['addresses']
{u'mac':u'02:50:43:f4:02:b1',u'ipv4':u'192.168.1.3'}
-添加csv扫描输出作为字符串。
-更改examples.py以使其与python3兼容


2012/12/13(v0.2.6)
-lundberg的修补程序。johan
-错误更正:当nmap不工作时,显示stderr而不是stdout

2012/11/23(v0.2.5)
-已更正:问题2:"map.nmap.portscannerror:"路径中未找到nmap程序""(在CentOS上)
-已更正:问题3:nmap.scan()过早短路

2011/11/09(v0.2.4)
-已实现Santhosh Edukulla<;Santhosh.edukulla@gmail.com>的请求;:
分析操作系统扫描输出
-多主机规范错误:
来自old.schepperhand@gmail.com的错误和修补程序

2011/11/04
-示例中的错误。py:如果在22-443之间没有打开TCP端口

2010/12/17(v0.2.3)
-将"获取上一个联机"版本添加到检查当前版本是否是最近发布的

2010/12/17(v0.2.2)
-处理nmap_错误输出时的错误(返回值为bin,应为字符串)
-已从初始化文件中删除测试字符串。

2010/12/15(v0.2.1)
-已更正初始化文件中有关作用域问题的错误
-尝试在已知目录中查找nmap可执行文件
-尝试调用命令行、扫描信息、扫描统计信息时引发断言错误,扫描前有主机

2010/12/14(v0.2.0)
-使python nmap与python 3.x协同工作
-brian bustin的贡献<;brian at bustin.us>;

2010/06/07(v0.1.4)
-steve'ashcrow'milner的补丁<;steve at gnulinux.net>;
-将shebang从init.py中删除,因为它不是可运行的脚本
-允许与alpha和beta nmap版本一起使用
-.has_key()已弃用,替换为in
-移到使用python2的print函数和3用法

<2010/06/04
-添加portscanner.listscan
-portscanner.scan现在返回scan_result
-添加portscannersync类(想法来自steve'ashcrow'milner<;steve at gnulinux.net>;)

<2010/06/03
-在谷歌代码上导入
svn checkout https://python-nmap.google code.com/svn/trunk/python nmap--username xxxxx
-添加了portscanner.scanstats方法
-更新了example.py和pingsweep文档
-更新了生成文档

2010/03/09
-修改包装。v0.1.1[诺曼]

2010/03/08
-初始版本。v0.1.0[诺曼]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
从Java中的方法返回列表时遇到问题   java如何忽略json字段,并使用Jackson ObjectMapper获取其值以进行映射   spring通过更新其各自java对象的值来映射两个xsd文件   java从HttpClient获取500错误,在浏览器中工作   java使用物理键输入(耳机中的按钮)在安卓中执行一些操作   如何在int数组(java)中追加int?   java Spring RequestParam的默认值等于方法调用   java将JsonLayout添加到log4j2 json配置   Ubuntu上的maven Tomcat6 libs和/usr/share/java   java单元测试Android活动   java获取URL证书的屏幕截图   java如何为自定义类加载器加载的类提供工具?   FB墙上的java错误图片,来自安卓应用程序的反馈帖子(安卓 FB sdk)   从Intellij IDEA内部运行Tomcat时的java差异?   java TDD与不可能的例外   安卓 Java日期表示差异