要判断一个SSH端口是否开放,你可以使用Python的`socket`库来尝试连接到该端口。下面是一个简单的Python脚本示例,用于检查指定主机上的SSH端口(默认为22)是否开放:
import socket
def check_ssh_port(host, port=22):
创建一个socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
尝试连接到指定的IP地址和端口
try:
s.connect((host, port))
如果连接成功,说明端口是开放的
print(f"SSH port {port} on {host} is open.")
s.close()
return True
except socket.error as e:
如果连接失败,说明端口是关闭的
print(f"SSH port {port} on {host} is closed or filtered.")
s.close()
return False
使用函数检查本地主机的SSH端口
check_ssh_port('127.0.0.1')
运行这个脚本,如果SSH端口开放,它会输出“SSH port 22 on 127.0.0.1 is open.”;如果端口关闭或过滤,它会输出“SSH port 22 on 127.0.0.1 is closed or filtered.”。
请注意,这个脚本只适用于本地主机的检查。如果你想检查远程主机的SSH端口,请将`host`参数替换为远程主机的IP地址或域名。
如果你需要更复杂的端口扫描功能,例如扫描多个端口或识别服务,你可能需要使用额外的库,如`psutil`或`nmap`。这些库可以帮助你获取进程信息、执行端口扫描等更高级的功能。