标签: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
标签:des style blog color os io 文件 for
原文地址:http://www.cnblogs.com/laolihere/p/3918384.html