首页 > 解决方案 > 如何在 Python 中为 IRC 机器人配置 SSL?

问题描述

我该如何解决这个错误:

错误:在仅 SSL 端口上收到 NON-SSL 命令。检查您的连接设置

我的代码

import socket

ircsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = "server" 
channel = "#channel" 
ircsock.connect((server, 6697)) 
ircsock.send(bytes("USER "+ botnick +" "+ botnick +" "+ botnick + " " + botnick + "n", "UTF-8"))
ircsock.send(bytes("NICK "+ botnick +"n", "UTF-8")) 
ircsock.send(bytes("JOIN "+ channel +"n", "UTF-8")) 
ircmsg = ircsock.recv(4096).decode("UTF-8")
print(ircmsg)

标签: python-3.xsslirc

解决方案


用 SSL 套接字包装连接套接字。例如:

import ssl
import socket

port = 6697
server = "server"  # Replace me with real address
ctx = ssl.create_default_context(purpose=ssl.Purpose.CLIENT_AUTH)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ircsock = ctx.wrap_socket(sock) 
ircsock.connect((server, port))
ircsock.send(bytes("USER "+ botnick +" "+ botnick +" "+ botnick + " " + botnick + "n", "UTF-8"))
...

推荐阅读