码迷,mamicode.com
首页 > 其他好文 > 详细

nmap 输出格式过滤小工具

时间:2014-08-17 22:43:32      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   os   io   文件   for   

想用nmap 扫描ip段输出一个干净的 IP:PORT格式的文件。于是写了个简单脚本。

import xml.dom.minidom
import sys
import getopt
statstr=""
statstrlist=["open"]
infile=""
outfile=""
infileflag=0
outfileflag=0
statstrflag=0
isstatflag=0
helpflag=0
#chu li can shu
options,args = getopt.getopt(sys.argv[1:],"hni:o:s:",["help","in=","out=","stat"])
for name,value in options:
    if name in ("-h","--help"):
        print """
        xxoo.py
            -h,--help print this help
            -i,--in read the nmap xml outfile
            -o,--out out the result (default: xmlname+_done.txt)
            -s,--stat splited by dot (example:open.filtered.close default:open)
            -n no status info
        """
        helpflag=1
    if name in ("-i","--in"):
        infile=value
        infileflag=1
    if name in ("-o","--out"):
        outfile=value
        outfileflag=1
    if name in ("-s","--stat"):
        statstrlist=value.split(".")
        statflag=1
    if name=="-n":
        isstatflag=1
#chu li mo ren can canshu 
if outfileflag==0:
    outfile=infile+"_done.txt"
if statstrflag==0:
    statstrlist=["open"]
if helpflag==1:
    exit()
#chu li dom
file=open(outfile,"w+")
dom=xml.dom.minidom.parse(infile)
root=dom.documentElement
hostlist=root.getElementsByTagName("host")
for hostnode in hostlist:
    for hostchild in hostnode.childNodes:
        if hostchild.nodeName=="address":
            ip=hostchild.getAttribute("addr")
        if hostchild.nodeName=="ports":
            for hostchildchild in hostchild.childNodes:
                if hostchildchild.nodeName=="port":
                    for stat in statstrlist:
                        if hostchildchild.childNodes[0].getAttribute("state")==stat:
                            if isstatflag==0:
                                print ip+":"+hostchildchild.getAttribute("portid")+"(("+stat+"))"
                                file.write(ip+":"+hostchildchild.getAttribute("portid")+"(("+stat+"))"+"\n")
                            if isstatflag==1:
                                print ip+":"+hostchildchild.getAttribute("portid")
                                file.write(ip+":"+hostchildchild.getAttribute("portid")+"\n")
                    #if hostchildchild.childNodes[0].getAttribute("state")=="open":
                        #print ip+":"+hostchildchild.getAttribute("portid")+"((open))"
                       # file.write(ip+":"+hostchildchild.getAttribute("portid")+"((open))"+"\n")
                    #elif hostchildchild.childNodes[0].getAttribute("state")=="filtered":
                       # print ip+":"+hostchildchild.getAttribute("portid")+"((filtered))"
                      #  file.write(ip+":"+hostchildchild.getAttribute("portid")+"((filtered))"+"\n")
                        
file.close()

 

用法:

先用nmap –oX 参数输出xml格式文件。然后tool –i name.xml –s open.filtered

nmap 输出格式过滤小工具,布布扣,bubuko.com

nmap 输出格式过滤小工具

标签:des   style   blog   color   os   io   文件   for   

原文地址:http://www.cnblogs.com/laolihere/p/3918384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!