Python使用TCP端口扫描

import socket
import time
from threading import Thread

def main(ip):
    print("开始扫描:%s"%ip)
    #扫描1~1024端口
    for port in range(1, 1024):
        #创建多线程扫描,target参数是多线程执行的方法,args参数是方法所需参数
        t = Thread(target=portScan, args=(ip, port))
        #启动多线程
        t.start()

#定义portScan涵数,用来进行TCP端口扫描
def portScan(ip, port=443):
    try:
        #创建socket链接
        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #尝试链接
        client.connect((ip, port))
        print("[*] %s:%d 开放"%(ip, port))
    except:
        #连接失败时会抛出异常,导致程序不会继续执行,所以这里要捕获
        pass

if __name__ == "__main__":
    ip = input("请输入IP:")
    sTime = time.time()
    main(ip)
    eTime = time.time()
    print("总共耗时%.2f s"%(eTime-sTime))

 

你可能感兴趣的:(python)