我没有通过此IRC连接获得“识别”响应
import sys
import time
import socket
server="irc.freenode.net"
botnick="Hidden"
channel="Hidden"
#Establish connection
irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc.connect((server,6667))
irc.setblocking(False)
time.sleep(1)
time.sleep(1)
irc.send(("/NICK "+botnick+"\r\n").encode('UTF-8'))
time.sleep(1)
irc.send(("/JOIN "+channel+"\r\n").encode('UTF-8'))
while 1:
time.sleep(0.1)
try:
text=irc.recv(2040)
print(text)
except Exception:
pass
if text.find("PING")!=-1:
irc.send(("Test").encode('UTF-8'))
input()
这是控制台输出
b':wilhelm.freenode.net NOTICE * :*** Looking up your
hostname...\r\n:
wilhelm.freenode.net NOTICE * :*** Checking Ident\r\n:
wilhelm.freenode.net NOTICE * :*** Found your hostname\r\n'
b':wilhelm.freenode.net NOTICE * :*** No Ident response\r\n'
它只挂了大约5-10秒,然后说关闭到127.0.0.1的链接 然后说b''多次
代码的灵感源自 http://agzuniverse.blogspot.ca/2016/05/irc-bot-in-python-tutorial.html
答案 0 :(得分:0)
identd RFC1413是一种服务,用于将来自多用户主机的连接与拥有"拥有的用户相关联。那些联系。它曾经被更广泛地使用,旧的SMTP和NNTP服务器经常被配置为记录相同的响应,但是现在除了IRC服务器之外它很大程度上不再使用。
最初,IRC服务器在连接时检查身份,因为大多数连接来自具有大量用户的UNIX主机,而且身份允许服务器以及通道操作员在滥用情况下区分这些用户。
直到今天它仍然可以用于此目的,并且经常需要允许超过非常小的连接限制(通常为2-5个连接)的主机。有时,即使对于不共享的主机,服务器也会要求它,因为它为试图从不安全的代理和禁止使用IRC的系统进行IRC的人造成了障碍。
因为identd在端口113上运行,当它与类似Unix的操作系统系统(如Linux)一起使用时,您无法以普通用户身份启动服务 - 系统管理员必须安装ident守护程序。最有可能的是,系统的软件存储库中有一个或多个可用。在Windows上,不存在特权端口的概念,并且IRC客户端软件通常提供它自己的内置标识。