python-3.x - 如何在 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)
解决方案
用 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"))
...
推荐阅读
- reactjs - 如何在异步 api thunk 调用中传递参数
- python-import - ImportError:在 SageMaker 中运行批量转换作业时没有名为 cv2 的模块
- tensorflow - 重新训练对象检测模型 - 内存不足 (OOM) 杀手 - Google 珊瑚
- reactjs - 如果 state 包含包含一个属性的对象,我们是否仍然创建一个副本,然后在 reducer 中更改它
- html - 音乐不会在 HTML 文档中播放。想法?
- java - Spring Framework中`RequestMapping`注解的`name`属性有哪些用例?
- jquery - jQuery ajax 链接不等待上一个调用完成
- binary - 二进制数据中的位编号,具有小端序
- jquery - 提交表单但 Jquery 函数未运行以验证条目
- google-chrome - 在 Chrome 中中继/转发 Websocket 流量