简介:介绍如何使用命令行和Python来测试服务器端口的打开状态。
在命令行中测试服务器端口是否打开的方法:
在这个示例中,我们创建了一个名为is_port_open的函数,它接受IP地址和端口号作为参数,并尝试使用socket模块连接到该端口。如果连接成功,则返回True;如果连接失败,则返回False。请注意,我们使用了settimeout方法来设置超时时间,以便在连接失败时能够捕获异常。
import socketdef is_port_open(ip, port):sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.settimeout(5) # 设置超时时间try:sock.connect((ip, port))return Trueexcept socket.error:return False
在这个示例中,我们创建了一个名为is_port_open的函数,它接受IP地址和端口号作为参数,并使用pynmap库扫描目标服务器上的所有端口。如果指定的端口状态为开放,则返回True;否则返回False。
from pynmap import PortScannerdef is_port_open(ip, port):scanner = PortScanner()state = scanner.scan(ip, '1-65535') # 扫描所有端口if port in state[ip]['ports']: # 如果端口在结果中存在if state[ip]['ports'][port]['state'] == 'open': # 如果端口状态为开放return Truereturn False