python - IRC 机器人无法连接到服务器 - Python

标签 python sockets bots irc

我不知道我做错了什么。没有任何错误或任何东西,它只是一直说我没有注册。这也是一个无需注册昵称即可使用的 IRC channel 和网络。提前致谢。

#I've set variables and imported stuff up here
socket.connect((host, port))
socket.recv(512)
socket.send('NICK %s' % (username))
socket.send('USER %s %s %s :%s\r\n' % (username, username, username, username))
pingPong = socket.recv(512)
print pingPong
pingPong = pingPong[5:]
print 'PONG ' + pingPong
socket.send('PONG %s\r\n' % pingPong)
print 'PONG ' + host + '\r\n'
time.sleep(5) #I even added this time.sleep() to wait for the PONG to go through.
socket.send('JOIN %s\r\n' % channel)
socket.recv(1024)
#I have a while loop that continually receives data and commands down here

输出:

PING:912E235B

乒乓:912E235B

:irc.va.us.mibbit.net 451 JOIN :您还没有注册

最佳答案

您的 NICK 和 USER 命令格式错误。 NICK 末尾应有一个“\r\n”。 USER 不应该只是您的用户名 4 次。下面是到该 irc 服务器的工作连接。

import socket

host = "irc.va.us.mibbit.net"
port = 6667
username = "andrew"
channel = "luck"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
print "recv 1", s.recv(512)
s.send('NICK %s\r\n' % (username,))
s.send('USER %s 8 * :%s\r\n' % (username, username))
pingPong = s.recv(512)
print "recv 2", pingPong
pingPong = pingPong[5:]
s.send('PONG %s\r\n' % pingPong)
s.send('JOIN %s\r\n' % (channel,))
msg = s.recv(1024)
print "Message", msg

关于python - IRC 机器人无法连接到服务器 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25457942/

相关文章:

python - 编码 : TypeError: write() argument must be str, 不是字节

api - Golang - API Server 和 Socket 同时存在

ruby-on-rails - Ruby、SSLSockets 和 Apple 的增强型 APN 消息格式

javascript - 如何循环获取从 config.json 文件获取的值的数量

security - 当机器人攻击!

python - 从 Python 逐步执行 Simulink 模型

python - 如何停止使用 websockets.serve() 创建的 websocket 服务器?

python - 从 Raspberry Pi 捕获 jpeg 图像并将其发送到 PC socket python?

java - 在android studio中集成AIML文件

python - Matplotlib:如何调整图例标记和标签之间的间距?