端口扫描器

多线程版

import optparse
import socket
from socket import *
def connScan(tgtHost,tgtPort):
    try:
        connSkt=socket(AF_INET,SOCK_STREAM)
        connskt.connect(tgtHost,tgtPort)
        connSkt.send('Violenpython\r\n')
        results=connSkt.recv(100)
        screenlock.acquire()
        print('[+] %d/tcp open' %tgtPort)
        print('[+]'+ str(results))
        #connSkt.close()
    except:
        screenlock.qcquire()
        print('[+] %d/tcp close' % tgtPort)
    finally:
        screenlock.acquire()
        connSkt.close()
def portScan(tgtHost,tgtPorts):
    try:
        tgtip=gethostbyname(tgthost)
    except:
        print("[-] cannot resolve '%s' : unknown host" %tgtHost)
        return
    try:
        tgtname=gethostbyaddr(tgtip)
        print('\n[+] scan results for: '+tgtname[0])
    except:
        print('\n[+] scan results for:'+tgtip)
    setdefaulttimeout(1)
    for tgtPort in tgtPorts:
        t=thrad(target=connScan,args=(tgthost,int(tgtPort)))
        t.start()
def main():
    parser=optparse.OptionParser('"usage%prog "+\
    "-H<target host> -p <target port>"')
    parser.add_option('-H',des='tgthost',type='string', \
    help ='specify target host')
    parser.add_option('-P',des='tgtport',type='string', \
    help ='specify target port[s] separated by comma')
    (options,args)=parser.parse_args()
    tgthost=options.tgthost
    tgtports=str(options.tgtport).split(',')
    if (tgthost==None)| (tgtports[0]==None):
        print(parser.usage)
        exit(0)
    portScan(tgthost,tgtports)
if __name__=='_main__':
    main()

nmap版

# coding=UTF-8 
import optparse 
import nmap
def nmapScan(tgtHost, tgtPort):    
    nmScan = nmap.PortScanner()    
    results = nmScan.scan(tgtHost, tgtPort)
    state = results['scan'][tgtHost]['tcp'][int(tgtPort)]['state']    
    print(" [*] " + tgtHost + " tcp/" + tgtPort + " " + state) 
def main():    
    parser = optparse.OptionParser('usage%prog –H <target host> -p <target port>')
    parser.add_option('-H', dest='tgtHost',type='string',
    help='specify target host')
    parser.add_option('-p', dest='tgtPort', type='string', help='specify target port')    
    (options, args)=parser.parse_args()   
    tgtHost = options.tgtHost    
    tgtPort = options.tgtPort    
    args.append(tgtPort)    
    if (tgtHost == None) | (tgtPort == None):        
        print('[-] You must specify a target host and port[s]!')        
        exit(0)    
        for tgport in args:        
            nmapScan(tgtHost, tgport) 
if __name__ == '__main__':
    main()
posted @ 2019-07-11 22:00  kailicard  阅读(331)  评论(0编辑  收藏  举报