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))