2012-06-10 55 views
2

我目前正在建立一个用于学习目的的IRC机器人,用于学习目的。我在处理服务器发送给我的机器人的ident消息时遇到了一些麻烦。我知道我必须在端口113上侦听ident消息并发回一个ident响应。麻烦的是,我无法将我创建的套接字绑定到端口113以侦听该消息。处理我的IRC机器人身份识别号码

有没有办法让我绑定到端口113或其他解决方案?另外,如何响应服务器发送的身份信息?

回答

3

绑定到低于1024的端口需要Linux上的root访问权限和Windows上的管理员权限。尝试以管理员用户身份运行,看看是否有帮助。如果仍然不能绑定,检查没有其他上113运行的服务:

# Windows 
netstat -a | find "listening" 
# Linux 
netstat -lnptu 

再次,您可能需要以root身份运行/管理员看到哪些端口在使用中。

您可以在RFC上找到关于Ident的更多信息,http://tools.ietf.org/html/rfc1413这实际上非常简洁。

此外,您可能不一定需要运行Ident服务才能连接(尽管它是首选!),具体取决于网络。它将取决于您连接的服务器,但尝试等待服务器尝试的Ident查询失败并查看其行为。

+0

它表示“标识请求已超时”。然后“找不到你的身份证,用〜testbot代替。”然后继续并显示正常的IRC行为并加入频道。所以我想这对我来说不是必要的吗? – seraphzero

+0

然后你可以随意忽略它。现在很少有服务器需要它,所以如果你不需要运行/欺骗identd,不要打扰。有趣的是,如果你想看到不同之处,流行的IRC客户端mIRC可以选择为IRC连接运行identd服务。 – stew

+0

好的谢谢你的解释。 – seraphzero

1

响应ident不是您的机器人的特权或责任。 ident协议的重点在于让机器识别哪个用户正在运行一个网络客户端,作为客户端已连接到的删除服务器;这是为了识别责任方,如果客户被发现是滥用的,以便滥用用户而不是shell框的管理员可以追究责任。