Python检查端口是否被监听
关于socket.connect_ex和socket.connect, 前者是返回状态值而不是抛出异常. 适合这种判断可连接的情景.
Like connect(address), but return an error indicator instead of raising an exception for errors returned by the C-level connect() call
当然, 复杂的判断还可以增加连接后和服务的交互, 使用send/sendall来发送数据以及recv/recvall来接收数据.
样例
import socket
port_number = [80, 135, 445, 3306, 8080, 1080]
for index in port_number:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex(('127.0.0.1', index))
if result == 0:
print("Port %d is open" % index)
else:
print("Port %d is not open" % index)
sock.close()
另外, psutils也可以在这里使用,博文转载自网站.