python-nmap在SLES11上似乎有点小问题
2015-02-13 15:14
225 查看
无论适用于python2.x的python-nmap-0.1.4还是适用于python3.x的python-nmap-0.3.4,按照给出的范例,PortScanner在执行scan方法的时候总会在处理finished标签的时候报错。
以python3为例,如果把369行屏蔽,不处理elapsed属性,那么后面的执行就会完全正常,只是扫描耗时没有记录了(事实上后面发现调用nmap获得的信息里间接有这个信息,只是不以“finished标签的elapsed属性”这个形式,而是通过起止时间间接给出的)。
读了一下nmap.py,发现scan方法调用了自身的analyse_nmap_xml_scan方法,于是修改analyse_nmap_xml_scan方法,直接把解析的dom对象返回,于是scan方法也返回了该对象,调用dom的toxml()方法,结果当中就根本没有“elapsed”这个词。
SLES11SP3环境,nmap版本是4.75。后来换了个CentOS7的环境,nmap-6.40,发现就一切正常了。看来后来的某个nmap版本开始,把elapsed这一项以属性的形式直接返回了。
>>> import nmap >>> nm = nmap.PortScanner() >>> nm.scan('1.2.3.4','21-255,1521,5901,5902') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.4/site-packages/nmap/nmap.py", line 302, in scan nmap_err_keep_trace = nmap_err_keep_trace) File "/usr/local/lib/python3.4/site-packages/nmap/nmap.py", line 369, in analyse_nmap_xml_scan 'elapsed':dom.getElementsByTagName("finished")[0].getAttributeNode('elapsed').value, AttributeError: 'NoneType' object has no attribute 'value' >>>
以python3为例,如果把369行屏蔽,不处理elapsed属性,那么后面的执行就会完全正常,只是扫描耗时没有记录了(事实上后面发现调用nmap获得的信息里间接有这个信息,只是不以“finished标签的elapsed属性”这个形式,而是通过起止时间间接给出的)。
读了一下nmap.py,发现scan方法调用了自身的analyse_nmap_xml_scan方法,于是修改analyse_nmap_xml_scan方法,直接把解析的dom对象返回,于是scan方法也返回了该对象,调用dom的toxml()方法,结果当中就根本没有“elapsed”这个词。
SLES11SP3环境,nmap版本是4.75。后来换了个CentOS7的环境,nmap-6.40,发现就一切正常了。看来后来的某个nmap版本开始,把elapsed这一项以属性的形式直接返回了。
相关文章推荐
- “读书月刊”似乎有点问题
- windows下python-nmap运行过程中出现的问题及解决办法
- 一段蓝牙通讯代码(似乎有点问题)
- windows下python-nmap运行过程中出现的问题及解决办法
- 用java模仿ATM(记录的功能似乎有点问题,哪位老大帮我看看)
- “完全教程”似乎有点问题
- python3.6 nmap模块的安装问题
- 今天排名似乎又出问题了
- 利用python处理xml -- 中文编码问题
- 关于 python 中使用 lambda 表达式的问题
- 菜鸟学Python(4):编码问题
- 小黑的指纹软件总是有点问题
- Python处理MLDonkey 下载中文文件乱码问题 (2)
- 菜鸟学Python(6):在Linux下用C扩展Python要注意的一个问题
- 使用动态属性还是资源?似乎是一个问题。
- 今天发现CSDNBLOG有点问题。
- style.display,有点问题
- 用python编写ASP脚本时遇到的问题,初步的解决方法,目前正在寻找更好的解决办法。
- Python处理MLDonkey 下载中文文件乱码问题
- 一个拖了很久的问题,似乎有空要修修那个置顶的播放器了……