我怎样才能让 irc bot 登录到已注册的昵称?
How can I make make an irc bot login to a registered nick?
根据 irc 文档,我假设在发送 NICK
和 USER
之前先发送 PASS
但它似乎没有用,我应该按照特定的顺序发送东西吗?
按此订单发送
PASS <password>\r\n
NICK yuribot\r\n
USER yuribot a blah: yuribot\r\n
日志
:irc.sxci.net 439 * :Please wait while we process your connection.
:irc.sxci.net NOTICE AUTH :*** Looking up your hostname...
:irc.sxci.net NOTICE AUTH :*** Checking Ident
:irc.sxci.net NOTICE AUTH :*** Couldn't look up your hostname
:irc.sxci.net NOTICE AUTH :*** No Ident response
:irc.sxci.net NOTICE Yuribot :*** Your host is masked (72A6C9FC.264941B0.A6596FAF.IP)
这是开始,如果你需要整个日志我会提供。
网络
irc.rizon.net
Rizon 使用名为 nickserv 的机器人(很常见),因此您只需向它发送格式为 identify <password>
的消息即可
pass命令用于连接注册(不用于昵称识别)
在发送 NICK+USER 组合后,您需要向 NickServ 识别。
有两种方法可以安全地识别 NickServ,第一种是使用 NS 命令,它是向 NickServ 服务发送消息的别名(但不是名为 NickServ 的用户),但该命令可能不适用于每个服务器
NS IDENTIFY <password>\r\n
我更喜欢(并推荐)的方式是向 NickServ 发送一个普通的 PRIVMSG,确保包含服务器名称 (services.rizon.net) 以确保它不会意外发送给名为 NickServ 的用户.
PRIVMSG NickServ@services.rizon.net :IDENTIFY <password>\r\n
担心消息会发送给名为 NickServ 的用户似乎很愚蠢,但是当网络分裂发生时(确实如此),服务通常会丢失,并且任何用户都可以使用昵称 NickServ 等,因为它未被使用服务不会阻止他们,因为他们不在线。
虽然一些 IRC 守护程序现在配置为防止使用昵称 NickServ,但安全总比后悔好。
客户端连接上的 PASS(相对于服务器-服务器 link)通常保留给以某种方式享有特权的连接,例如,
来自应立即屏蔽其主机的 IRC 操作员的连接
正在连接。
服务器之间的连接当然总是需要 PASS,因为流氓服务器可以篡改 IRC 网络的共享状态,导致不稳定,或进行其他恶作剧,如大规模杀戮。
一些网络尝试将 PASS 转发到他们的 IRC 服务,但这并没有真正流行起来,因为 ircv3 SASL extension 提供了更好的标准
在不需要的连接时对用户进行服务身份验证的方法
劫持已经有其他用途的设施。在 PASS 可用于登录服务的少数情况下,它通常采用与通常用于 PASS 命令的格式不同的格式。由于您注册的昵称在连接时可能不可用,因此服务至少需要注册的昵称和密码,而 PASS 通常只接受密码。您必须查找特定于网络的文档及其服务,以找到所需的特定格式(如果提供的话)。
如今,大多数提供服务的网络都支持 SASL 身份验证,并且在提供它的地方,它通常是最受支持的选项,因为客户端和服务器开发人员将其作为标准采用的广泛努力。
某些网络,例如 Rizon,支持另一种自动识别方法 - CERTFP。 CERTFP 识别会根据 SSL 客户端证书自动让您登录,该证书会根据存储在服务中的证书指纹进行检查。与 SASL 相比,这是一种不太常见的自动识别方法,但它是安全的,并且不需要您将密码保存在脚本或设置中。设置此设置的具体细节因网络而异,并不总是提供,但您可以查看该网络上的服务帮助文件,并询问那里的帮助渠道以了解它是否是一个选项。
作为最后的手段,您可以在成功连接后通过自动发送 PRIVMSG nickserv :identify <password>
自动 /msg 登录到 nickserv。
根据 irc 文档,我假设在发送 NICK
和 USER
之前先发送 PASS
但它似乎没有用,我应该按照特定的顺序发送东西吗?
按此订单发送
PASS <password>\r\n
NICK yuribot\r\n
USER yuribot a blah: yuribot\r\n
日志
:irc.sxci.net 439 * :Please wait while we process your connection.
:irc.sxci.net NOTICE AUTH :*** Looking up your hostname...
:irc.sxci.net NOTICE AUTH :*** Checking Ident
:irc.sxci.net NOTICE AUTH :*** Couldn't look up your hostname
:irc.sxci.net NOTICE AUTH :*** No Ident response
:irc.sxci.net NOTICE Yuribot :*** Your host is masked (72A6C9FC.264941B0.A6596FAF.IP)
这是开始,如果你需要整个日志我会提供。
网络
irc.rizon.net
Rizon 使用名为 nickserv 的机器人(很常见),因此您只需向它发送格式为 identify <password>
pass命令用于连接注册(不用于昵称识别) 在发送 NICK+USER 组合后,您需要向 NickServ 识别。
有两种方法可以安全地识别 NickServ,第一种是使用 NS 命令,它是向 NickServ 服务发送消息的别名(但不是名为 NickServ 的用户),但该命令可能不适用于每个服务器
NS IDENTIFY <password>\r\n
我更喜欢(并推荐)的方式是向 NickServ 发送一个普通的 PRIVMSG,确保包含服务器名称 (services.rizon.net) 以确保它不会意外发送给名为 NickServ 的用户.
PRIVMSG NickServ@services.rizon.net :IDENTIFY <password>\r\n
担心消息会发送给名为 NickServ 的用户似乎很愚蠢,但是当网络分裂发生时(确实如此),服务通常会丢失,并且任何用户都可以使用昵称 NickServ 等,因为它未被使用服务不会阻止他们,因为他们不在线。 虽然一些 IRC 守护程序现在配置为防止使用昵称 NickServ,但安全总比后悔好。
客户端连接上的 PASS(相对于服务器-服务器 link)通常保留给以某种方式享有特权的连接,例如, 来自应立即屏蔽其主机的 IRC 操作员的连接 正在连接。
服务器之间的连接当然总是需要 PASS,因为流氓服务器可以篡改 IRC 网络的共享状态,导致不稳定,或进行其他恶作剧,如大规模杀戮。
一些网络尝试将 PASS 转发到他们的 IRC 服务,但这并没有真正流行起来,因为 ircv3 SASL extension 提供了更好的标准 在不需要的连接时对用户进行服务身份验证的方法 劫持已经有其他用途的设施。在 PASS 可用于登录服务的少数情况下,它通常采用与通常用于 PASS 命令的格式不同的格式。由于您注册的昵称在连接时可能不可用,因此服务至少需要注册的昵称和密码,而 PASS 通常只接受密码。您必须查找特定于网络的文档及其服务,以找到所需的特定格式(如果提供的话)。
如今,大多数提供服务的网络都支持 SASL 身份验证,并且在提供它的地方,它通常是最受支持的选项,因为客户端和服务器开发人员将其作为标准采用的广泛努力。
某些网络,例如 Rizon,支持另一种自动识别方法 - CERTFP。 CERTFP 识别会根据 SSL 客户端证书自动让您登录,该证书会根据存储在服务中的证书指纹进行检查。与 SASL 相比,这是一种不太常见的自动识别方法,但它是安全的,并且不需要您将密码保存在脚本或设置中。设置此设置的具体细节因网络而异,并不总是提供,但您可以查看该网络上的服务帮助文件,并询问那里的帮助渠道以了解它是否是一个选项。
作为最后的手段,您可以在成功连接后通过自动发送 PRIVMSG nickserv :identify <password>
自动 /msg 登录到 nickserv。