【问题标题】:Handling ident for my IRC bot为我的 IRC 机器人处理 ident
【发布时间】:2012-06-13 22:30:06
【问题描述】:

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

我有什么方法可以绑定到端口 113 或解决此问题的其他方法吗?另外,我该如何响应服务器发送的 ident 消息?

【问题讨论】:

    标签: c irc bots


    【解决方案1】:

    响应 ident 不是您的机器人所拥有的特权或责任。 ident 协议的重点是让机器识别网络客户端正在运行的用户,以及客户端连接到的删除服务器;这是为了在发现客户存在滥用行为的情况下确定责任方,以便可以追究滥用行为的用户而不是外壳盒的管理员的责任。

    【讨论】:

      【解决方案2】:

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

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

      同样,您可能需要以 root/admin 身份运行才能查看正在使用的端口。

      您可以在 RFC https://www.rfc-editor.org/rfc/rfc1413 上找到有关 Ident 的更多信息,这实际上非常简洁。

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

      【讨论】:

      • 它显示“Ident 请求超时”。然后“找不到您的身份,使用 ~testbot 代替。”在继续并显示正常的 IRC 行为并加入频道之前。所以我想我没有必要去处理它?
      • 那么你可以随意忽略它。现在很少有服务器需要它,所以如果您不需要运行/欺骗 identd,请不要打扰。有趣的是,如果您想看看差异,流行的 IRC 客户端 mIRC 可以选择为 IRC 连接运行 identd 服务。
      猜你喜欢
      • 2011-01-21
      • 1970-01-01
      • 2018-12-31
      • 2017-05-13
      • 1970-01-01
      • 2012-08-13
      • 2015-02-21
      • 2013-02-02
      • 2016-10-04
      相关资源
      最近更新 更多