如何在 Python 中为 IRC 机器人配置 SSL?
Posted
技术标签:
【中文标题】如何在 Python 中为 IRC 机器人配置 SSL?【英文标题】:How can I configure SSL for an IRC bot in Python? 【发布时间】:2020-05-21 09:57:45 【问题描述】:我该如何解决这个错误:
错误:在仅 SSL 端口上收到非 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)
【问题讨论】:
【参考方案1】:使用 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"))
...
【讨论】:
以上是关于如何在 Python 中为 IRC 机器人配置 SSL?的主要内容,如果未能解决你的问题,请参考以下文章
Python IRC bot 在 3 次 ping 后断开连接
Twisted Python IRC bot - 如何异步执行函数以便它不会阻塞机器人?
Twisted Python IRC Bot - 如何在 bot 运行命令时监听命令?