写一个TCP端口扫描通用脚本,可以共享给班级的其他机器去使用你的脚本,最终查看的结果是 输出扫描的机器的IP地址、系统名称 开启了几个端口 开启的端口具体是多少 什么时间扫描的,需要记录时间标记
时间: 2024-05-31 22:08:07 浏览: 144
import socket
import datetime
# 定义要扫描的端口范围
PORT_RANGE = range(1, 1025)
# 获取本机IP地址和系统名称
HOST_NAME = socket.gethostname()
IP_ADDRESS = socket.gethostbyname(HOST_NAME)
SYSTEM_NAME = str(socket.gethostbyaddr(IP_ADDRESS)[0])
# 定义扫描函数
def scan_port(ip, port):
# 创建TCP套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置超时时间为1秒
tcp_socket.settimeout(1)
try:
# 尝试连接目标主机的端口
tcp_socket.connect((ip, port))
print(f"{ip} {SYSTEM_NAME} {port} is open")
except:
pass
finally:
# 关闭套接字
tcp_socket.close()
# 获取扫描开始时间
start_time = datetime.datetime.now()
# 遍历IP地址和端口范围,执行扫描
for port in PORT_RANGE:
scan_port(IP_ADDRESS, port)
# 获取扫描结束时间
end_time = datetime.datetime.now()
# 输出扫描结果和时间戳
print(f"Scan finished at {end_time}")
print(f"Scan took {end_time - start_time} seconds")