【问题标题】:python irc bot, unable to join serverpython irc bot,无法加入服务器
【发布时间】:2013-11-05 11:37:34
【问题描述】:

我想使用以下代码在 python 中托管一个简单的 irc 机器人:

#!/usr/bin/python

import sys
import os
import socket

HOST = 'irc.gamesurge.net'
PORT = 6667
NICK = 'test_bot'
IDENT = 'testbot'
REALNAME = 'TestBot'
OWNER = 'Test'
CHANNELINIT = '#test_channel'

readbuffer = ''

sock = socket.socket()
sock.connect((HOST, PORT))
sock.send('NICK %sn' % NICK)
sock.send('USER %s %s bla :%sn' % (IDENT, HOST, REALNAME))


while True:
    line = sock.recv(500)
    if line:
        print line
        if line.find('GameSurge') != -1:
            print "joining..."
            print"current line: "+line
            sock.send('JOIN %sn' % CHANNELINIT)

但无论我选择连接哪个游戏服务器,它总是给我这个错误:

ERROR :Closing Link: by NuclearFallout.WA.US.GameSurge.net (Registration Timeout)

这是服务器返回的内容:

NOTICE AUTH :*** Looking up your hostname
NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** Found your hostname

NOTICE AUTH :*** No ident response

ERROR :Closing Link:  by NuclearFallout.WA.US.GameSurge.net (Registration Timeout)

有谁知道如何解决这个问题?谢谢。

【问题讨论】:

    标签: python sockets irc


    【解决方案1】:
    sock.send('NICK %sn' % NICK)
    

    n 之前缺少\ - 命令的结尾是换行符,而不是n。其他行也一样。

    sock.send('NICK %s\n' % NICK)
    sock.send('USER %s %s bla :%s\n' % (IDENT, HOST, REALNAME))
    

    等等。也就是说,为什么要重新发明轮子?有许多可用的 IRC 机器人框架/模块可以让您摆脱猜测,让您专注于为机器人编写实际功能。

    【讨论】:

    • 它仍然给我同样的错误,但伴随着这个Prometheus.UK.EU.GameSurge.net 513 choi_bot :Your client may not be compatible with this server.
    • 另外,你会推荐什么框架?以及任何示例代码?
    • willie 是相当成熟的 IRC 机器人框架之一。
    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 2013-01-16
    • 2023-03-25
    • 2012-10-04
    • 2014-09-09
    相关资源
    最近更新 更多