import nmap import re import mytools as tool import sys
reload(sys) sys.setdefaultencoding("utf8")
def nmScan(hostlist,portrange,whitelist): p = re.compile("^(d*)-(d*)$") if type(hostlist) != list: help() portmatch = re.match(p,portrange) if not portmatch: help() l = [] for host in hostlist: result = "" nm = nmap.PortScanner() tmp = nm.scan(host,portrange) result = result + "<h2>ip地址:%s 主机名:[%s] ...... %s</h2><hr>" %(host,tmp["scan"][host]["hostname"],tmp["scan"][host]["status"]["state"]) try: ports = tmp["scan"][host]["tcp"].keys() except KeyError,e: if whitelist: whitestr = ",".join(whitelist) result = result + "未扫到开放端口!请检查%s端口对应的服务状态" %whitestr else: result = result + "扫描结果正常,无暴漏端口" continue for port in ports: info = "" if port not in whitelist: info = "<strong><font color=red>Alert:非预期端口</font><strong> " else: info = "<strong><font color=green>Info:正常开放端口</font><strong> " portinfo = "%s <strong>port</strong> : %s <strong>state</strong> : %s <strong>product<strong/> : %s <br>" %(info,port,tmp["scan"][host]["tcp"][port]["state"], tmp["scan"][host]["tcp"][port]["product"]) result = result + portinfo l.append([host,str(result)]) return l
import nmap import re import mytools as tool import sys from multiprocessing import Pool from functools import partial
reload(sys) sys.setdefaultencoding("utf8")
def nmScan(host,portrange,whitelist): p = re.compile("^(d*)-(d*)$") # if type(hostlist) != list: # help() portmatch = re.match(p,portrange) if not portmatch: help()
if host == "121.42.32.172": whitelist = [25,] result = "" nm = nmap.PortScanner() tmp = nm.scan(host,portrange) result = result + "<h2>ip地址:%s 主机名:[%s] ...... %s</h2><hr>" %(host,tmp["scan"][host]["hostname"],tmp["scan"][host]["status"]["state"]) try: ports = tmp["scan"][host]["tcp"].keys() for port in ports: info = "" if port not in whitelist: info = "<strong><font color=red>Alert:非预期端口</font><strong> " else: info = "<strong><font color=green>Info:正常开放端口</font><strong> " portinfo = "%s <strong>port</strong> : %s <strong>state</strong> : %s <strong>product<strong/> : %s <br>" %(info,port,tmp["scan"][host]["tcp"][port]["state"], tmp["scan"][host]["tcp"][port]["product"]) result = result + portinfo except KeyError,e: if whitelist: whitestr = ",".join(whitelist) result = result + "未扫到开放端口!请检查%s端口对应的服务状态" %whitestr else: result = result + "扫描结果正常,无暴漏端口" return result