Isto é da minha resposta anterior a uma pergunta semelhante.
Como verificar se um servidor OpenVPN está escutando em uma porta remota sem usar o cliente OpenVPN?
Se você estiver usando a autenticação tls (linha de configuração tls-auth), isso não está funcionando, mas você pode ter a idéia da conversação UDP.
import socket
senddata= "\x38\x01\x00\x00\x00\x00\x00\x00\x00"
def checkserver(ip,port):
print('Checking %s:%s' %(ip,port))
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(5) # in seconds
sock.connect((ip, port))
print("Sending request...")
sock.send(senddata)
try:
dta=sock.recv(100)
print("Server reply: %s" %(dta))
except:
print("Server not responding")
sock.close()
print("###########################################################")
def main():
checkserver("addr.of.server1",1194)
checkserver("addr.of.server2",1195)
if __name__ == "__main__":
main()