IRC中的昵称、用户名、实名有啥区别,密码是啥?

Posted

技术标签:

【中文标题】IRC中的昵称、用户名、实名有啥区别,密码是啥?【英文标题】:What is the difference between the nick, username, and real name in IRC, and what is the password?IRC中的昵称、用户名、实名有什么区别,密码是什么? 【发布时间】:2015-07-28 02:05:01 【问题描述】:

根据RFC 2812, section 3.1,为了连接到IRC服务器,用户必须依次发出三个命令:

PASS <a password>
NICK <a nickname>
USER <a username> <mode> <unused> <a real name>

所以我们有一个密码,我们有三个不同的“名字”:昵称、用户名和真实姓名。

当我使用 IRC 时,我只有一个名字:在聊天中显示给其他人的名字。这是昵称吗?

另外两个是什么?密码是什么?我知道 IRC 中有一个功能,您可以在其中注册昵称和密码,因此只有您可以使用它。是这个密码吗?

【问题讨论】:

【参考方案1】:

NICK 提供的 昵称 是用于在 IRC 上称呼您的名称。昵称在整个网络中必须是唯一的,因此您不能使用当时已经在使用的昵称。

USER 提供的 用户名 只是您的 user@host 主机掩码中的 user 部分,在 IRC 上显示给其他人,显示您的连接来源(如果您从未见过这些,那么您的客户可能会隐藏它们)。在 IRC 的早期,人们通常在多用户机器上运行他们的 IRC 客户端,并且用户名对应于他们在该机器上的本地用户名。有些人仍然在多用户 shell 服务器中使用 IRC,但大多数情况下用户名是退化的。

USER 提供的真实姓名 用于填充当有人在您的昵称上使用WHOIS 命令时出现的真实姓名字段。与其他两个字段不同,此字段可以相当长并且包含大多数字符(包括空格)。有些人确实在这里输入了他们的真实姓名,但很多人没有。

PASS 命令是可选的。如果您使用的 IRC 服务器需要一个密码,它用于提供一个。一些服务器会使用提供的密码来尝试让您登录 IRC 服务。

请注意,RFC2812 并不代表 IRC 的共识观点 - 它是对由 IRC 编写并专注于 IRC 的一种特定实现的标准的更新。 RFC1459 仍然是 IRC 的通用语。

【讨论】:

在我测试的服务器上,通过与 NickServ 服务对话实现了昵称注册/识别。我认为任何 RFC 都没有提到或描述 NickServ,所以使用 PASS 命令输入昵称识别密码不是该命令最初的用途吗? @JackM:是的——它最初是为了实现一个“受密码保护”的服务器,在没有密码的情况下根本无法连接。如果某些类别的用户提供了正确的密码(例如,更长的 ping 超时或免除 k 行),它还用于为某些类别的用户提供额外的权限。 嗨 @caf,感谢您对 RFC 的注意。我对这一切都很陌生,并计划开发一个 IRC 机器人来取乐。我应该坚持哪个 RFC? RFC2812 实施是否更广泛?或者我不能用 RFC1459 出错吗?提前致谢。 @fancyPants:RFC1459 是广泛使用的共同点。部分内容略显浅显,因此您可能会发现还需要一些“部落知识”。【参考方案2】:

我做了一些实验,似乎唯一重要的是昵称。密码确实是用来注册你的,与nick相关联,而不是用户名或真实姓名。至少在 Foonetic 上。

首先,我使用昵称“Iggle”和一些随机的其他数据登录:

PASS stuff
NICK Iggle
USER whatever 0 * somerealname

然后我注册了

PRIVMSG nickserv register pinetree myemail@gmail.com

并验证了它。所以现在“pinetree”是 Nick 的密码:Iggle,用户名:whatever,真实姓名:somerealname。

我断开连接并重新连接。

PASS something
NICK Iggle
USER whatever 0 * somerealname

它让我登录但抱怨密码无效。好的:

PRIVMSG nickserv identify pinetree

这很有效,它给了我 +r。所以PASS 命令确实与您在 NickServ 注册的密码相对应。执行WHOIS Iggle 显示用户名“whatever”和真实姓名“some real name”。我断开连接并重新连接。

PASS pinetree
NICK Iggle
USER canada 0 * ghana

这让我登录并且没有抱怨密码,直接给我+r!这证实了PASS 命令与提供给 nickserv 的密码相同,并且由于我使用了不同的用户名和真实姓名,这表明这两者都与密码无关——只有昵称很重要。 WHOIS Iggle 显示了用户名“canada”和真实姓名“ghana”,没有提及我之前登录时使用的数据。因此,您甚至可以在每次连接到服务器时使用不同的用户名和真实姓名,而且似乎没有人注意到。

结论: 昵称似乎是唯一重要的东西。一旦在 nickserv 注册,它就会永久附加到密码上,用户名和真实姓名无关紧要,每次登录时都可以更改。它们甚至似乎都没有被服务器存储在任何地方。

【讨论】:

一些 IRC 网络已选择重用 PASS 来对服务进行身份验证,但这是非标准用法。 PASS 通常用于服务器之间的连接,以及具有某种特权的用户(他们可能有更大的发送缓冲区、免于洪水控制、屏蔽主机、免于连接限制或被授权从该服务器通常所在的网络进行连接)不接受连接。)SASL authentication 是使用 PASS 进行服务身份验证的更广泛使用的替代方法。【参考方案3】:

是的,你是对的昵称。一般来说:

昵称 - 显示给其他用户的名字 用户名 - 您用于登录的名称,允许系统识别您 密码 - 符号序列,允许系统将您与您的用户名匹配 真实姓名 - 这只是关于您的附加信息

【讨论】:

密码和昵称不匹配,不是用户名?我以为密码的目的正是为了阻止其他人使用您的昵称? 隐藏用户名更安全,因为登录需要用户名+密码。使用昵称登录不太安全,因为每个人都知道。犯罪分子只需要获取您的密码即可。 但是如果您的密码只与您的用户名相关联,它如何帮助您控制您的昵称? 它与用户名相关联。在这种情况下,您可能会将用户名视为 |username |password |nick| 表上的主键。您需要您的密码才能使用此用户名登录,并且只有具有此用户名的用户才允许使用特定的昵称。 用户名在整个网络中不是唯一的,不用于登录。它只是user@host@之前的部分。

以上是关于IRC中的昵称、用户名、实名有啥区别,密码是啥?的主要内容,如果未能解决你的问题,请参考以下文章

当人加入昵称 IRC

在当前昵称下运行 IRC 机器人?

irc昵称的pcre表达式?

数据库中 rollback 和 commit 是啥时候用的 作用是啥 有啥区别 举几个简单的

网络中的VPN和VPDN是啥意思?有啥区别

用于聊天窗口 irc 的 GTK 最好的小部件是啥? [关闭]