这个例子可以扫描指定的 IP 地址和端口是否在活动状态:
import socket
def is_port_open(ip, port):
try:
# 创建一个 TCP 套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(0.5)
s.connect((ip, port))
s.close()
return True
except socket.error:
return False
def scan_ip_ports(ip, start_port, end_port):
for port in range(start_port, end_port + 1):
if is_port_open(ip, port):
print(f"Port {port} is open")
else:
print(f"Port {port} is closed")
if __name__ == "__main__":
ip = input("Enter the IP address: ")
start_port = int(input("Enter the start port: "))
end_port = int(input("Enter the end port: "))
scan_ip_ports(ip, start_port, end_port)
首先定义了两个函数:is_port_open
和 scan_ip_ports
。is_port_open
函数用于检查指定的 IP 地址和端口是否在活动状态。如果端口是开放的,则返回 True,否则返回 False。scan_ip_ports
函数用于扫描指定的 IP 地址和端口,并输出扫描结果。
在 main
函数中,我们首先要求用户输入要扫描的 IP 地址、起始端口和结束端口。然后,我们调用 scan_ip_ports
函数来扫描指定的 IP 地址和端口,并输出扫描结果。
这只是一个简单的示例,还不能处理较为复杂的情况。