IRC 中的昵称、用户名和真实姓名有什么区别,密码是什么?

What is the difference between the nick, username, and real name in IRC, and what is the password?

根据 RFC 2812, section 3.1,为了连接到 IRC 服务器,用户必须按以下顺序发出三个命令:

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

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

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

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

是的,你说的昵称是对的。总的来说:

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

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

首先,我用 nick "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 注册,它就会永久附加到密码上,用户名和真实姓名无关紧要,每次登录时都可以更改。它们甚至似乎没有被服务器存储在任何地方。

昵称NICK 一起提供,是在 IRC 上用来称呼您的名字。昵称必须在全网唯一,不能使用当时已经被使用的昵称。

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

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

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

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