我正在玩IRC bot(在python中),并且一直在研究一些有用的例子。
有一件事我不能直接...... 我应该在NICK,USER之前使用PASS吗?
在RFC 1459以及RFC 2810..13的几个版本中,建议在NICK,USER之前使用PASS。然而似乎没有人遵循这种做法。没有PASS,机器人似乎工作得很好。
问题:任何人都可以解释是否以及何时使用PASS,也许为什么......
祝你好运 马丁
答案 0 :(得分:0)
PASS用于向IRC服务器提供连接密码,但大多数公共IRC服务器通常不设置连接密码。只有在连接服务器时需要密码时才需要PASS。 (注意连接身份验证和对诸如NickServ之类的网络服务进行身份验证之间的区别)。
NICK和USER足以注册到IRC服务器的新连接。但是,由于PASS是可选的,因此必须在连接注册完成之前指定。这意味着PASS不能是NICK,USER和PASS三人发送的最后一个。
答案 1 :(得分:0)
在连接完全“注册”到服务器时评估PASS - 意味着,服务器具有评估是否允许连接所需的所有必需信息的点,并且如果允许,则引入客户端到网络。 (这是在NickServ等IRC服务的注册之前,并且与之分开)。直到服务器看到SERVER或两者和NICK和USER命令的那一刻,PASS被接受,
PASS实际上可能会被多次发送,通常只会受到注册超时的影响,但根据RFC,只评估在完成注册之前看到的最后一次PASS - 多次发送PASS只会覆盖之前的值。
如果连接来自服务器,则需要PASS,并且必须在SERVER命令之前发送。
普通用户通常不需要发送密码进行连接 - 通常只需要以某种方式享有特权的连接 - 例如具有更高连接限制的用户,防洪控制豁免,具有屏蔽主机名的IRC操作员在服务器配置中,更大的发送缓冲区,更长的ping超时,或者允许连接,尽管有地理限制,可能会定义密码。
有些网络选择使用PASS对NickServ等IRC服务进行身份验证,但这已经不常见了,因为这种使用与PASS的标准使用冲突,并且因为对服务的身份验证通常需要两个参数(帐户名和密码)和PASS定义为一个。
如果您希望在连接时对服务进行身份验证,大多数具有服务的网络都会专门为此目的实施IRC协议的SASL Authentication扩展。