微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用带有 SASL 的套接字连接到 irc

如何解决使用带有 SASL 的套接字连接到 irc

代码:-

import socket

s = socket.socket(socket.AF_INET,socket.soCK_STREAM)
HOST = 'chat.freenode.com' #irc server
PORT = 6667 #port
NICK = 'bot'
USERNAME = 'bot'
REALNAME = 'bot'
print('soc created |',s)
remote_ip = socket.gethostbyname(HOST)
print('ip of irc server is:',remote_ip)

s.connect((HOST,PORT))
print('connected to: ',HOST,PORT)

nick_cr = ('NICK ' + NICK + '\r\n').encode()
s.send(nick_cr)
usernam_cr= ('USER bot bot bot :bot \r\n').encode()

s.send(usernam_cr)
s.send('JOIN ##news \r\n'.encode()) #chanel


while 1:
    data = s.recv(4096).decode('utf-8')[:1000]
    print(data)
    if data.find('PING') != -1:
        s.send(str('PONG ' + data.split(':')[1] + '\r\n').encode())
        print('PONG sent \n')
    if data.find('hi') != -1:
        s.send((str('PRIVMSG ' + data.split()[2]) + ' Hi! \r\n').encode())

s.close()

这段代码适用于我的电脑/网络,但是当我将它部署到 heroku 上时,我收到此错误:-

ERROR :Closing Link: ecX-XX-XXX-XXX-XXX.compute-1.amazonaws.com (SASL access only)

我什至尝试过这段代码(它可以工作,但我无法将通过 irc 频道发送的消息打印到我的控制台):-

import ib3.auth
import irc.bot

NICKNAME='your account name here'
PASSWORD='your password here'
CHANNELS=['##news']

class ExampleSaslBot(ib3.auth.SASL,irc.bot.SingleServerIRCBot):
    # Add your ``on_*`` handlers here
    pass

bot = ExampleSaslBot(
    server_list=[('chat.freenode.net',6667)],nickname=NICKNAME,realname=NICKNAME,ident_password=PASSWORD,channels=CHANNELS,)
bot.start()

模块链接:- https://pypi.org/project/irc/, 如果有人知道如何使用此模块在我的控制台上打印消息,请告诉我

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。