首页 > 代码库 > nmap 输出格式过滤小工具
nmap 输出格式过滤小工具
想用nmap 扫描ip段输出一个干净的 IP:PORT格式的文件。于是写了个简单脚本。
import xml.dom.minidomimport sysimport getoptstatstr=""statstrlist=["open"]infile=""outfile=""infileflag=0outfileflag=0statstrflag=0isstatflag=0helpflag=0#chu li can shuoptions,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 domfile=open(outfile,"w+")dom=xml.dom.minidom.parse(infile)root=dom.documentElementhostlist=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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。