SteamID
SteamID是用于标识Steam帐户的唯一标识符,它也用于引用用户的Steam社区个人资料页面。
格式
以文本形式显示
当以文本形式显示时,SteamID遵循相当简单的格式:“STEAM_X:Y:Z”,其中X、Y和Z是整数。在某些情况下,会使用“STEAM_ID_PENDING(待定)”或“UNKNOWN(未知)”替代显示(有关更多详细信息,请参见“Steam帐户类型”部分)。
- X代表Steam账户所属的“Universe(账号体系)”。
- Y是帐户ID的一部分,值为0或1。
- Z为“账号”。
在计算机程序内部显示
当在计算机程序内部显示时,X、Y和Z部分(参见“以文本形式显示”部分)都将被打包成64位数据结构。
- Y占最低位的数值。
- 接下来的31位代表帐号。
- 接下来的20位代表帐户实例,用户帐户通常设置为1。
- 接下来的4位代表帐户的类型。
- 最后8位代表Steam账户所属的“Universe(账号体系)”。
适用于Steam账户的Universes(账号体系)
Steam账户有6种Universes(账号体系)类型。
数值 | 类型 |
---|---|
0 | 个人/未指定 |
1 | 公共 |
2 | 测试 |
3 | 内部 |
4 | 开发 |
5 | 发行候选 |
Steam帐户类型
Steam帐户有10种已知的帐户类型,其中有4种仍然可以被创建。
数值 | 字母 | 类型 | 中文名称 | 能否使用 | 链接部分(默认/自定义) | SteamID64标识符 |
---|---|---|---|---|---|---|
0 | I | Invalid | 无效 | 否 | ||
1 | U | Individual | 个人 | 是 | profiles / id | 0x0110000100000000 |
2 | M | Multiseat | 多用户 | 是 | ||
3 | G | GameServer | 游戏服务器 | 是 | ||
4 | A | AnonGameServer | 匿名游戏服务器 | 是 | ||
5 | P | Pending | 待定 | 否 | ||
6 | C | ContentServer | 内容服务器 | 未知 | ||
7 | g | Clan | 组 | 是 | groups / gid | 0x0170000000000000 |
8 | T / L / c | Chat | 聊天室 | 是 | ||
9 | P2P SuperSeeder | P2P超级种子 | 否 | |||
10 | a | AnonUser | 匿名用户 | 是 |
当拥有“个人”类型的账户连接Steam身份验证服务器时,账户将会被临时分配为“Pending(待定)”类型。这种账户的文本形式表示为“STEAM_ID_Pending(待定)”,直到他们的账户凭据通过Steam的身份验证服务器为止,这个过程通常在连接服务器时发生。类型为“Invalid(无效)”的帐户的文本形式表示为“UNKNOWN(未知)”,用于机器人与不属于其他类型的帐户。
对于聊天室,多用户聊天室使用“T”字符,Steam组(群组聊天)使用“c”字符,Steam大厅使用聊天ID与“L”字符。
Steam ID转换为Steam社区ID
每个Steam ID都可以被转换至用于Steam社区网站的 Steam社区 ID。
设三个函数:X,Y与Z,通常与SteamID的“STEAM_X:Y:Z”相同。
有两种ID系统,转换方式不同:
- 32位ID系统
- 使用W=Z*2+Y公式,一个SteamID可以被转换为如下链接:
- http 或 https://steamcommunity.com/路径/[字母:1:W]
- 在“Steam帐户类型”表中可以找到代表“字母”部分的“帐户类型”列,斜线后的“路径”部分也可以在表中的“链接部分”列找到。
- 例如: http://steamcommunity.com/gid/[g:1:4]
- 64位ID系统
- 设函数V,定义为SteamID64标识符(为16进制格式,可以在上方的“Steam帐户类型”表中找到)。
- 使用W=Z*2+V+Y公式,一个SteamID可以被转换为如下链接:
- http 或 https://steamcommunity.com/路径/W
- 与32位ID系统的转换方法类似,斜线后的“路径”部分可以在“Steam帐户类型”表中的“链接部分”列找到。
- 例如: http://steamcommunity.com/profiles/76561197960287930
Steam社区ID转换为Steam ID
使用逆运算方法,社区ID可以转换为常规的SteamID。Z的值可以通过检查W的奇偶性来获取:W如果是偶数,Y的值为0;W如果是奇数,Y的值为1(这个方法很快,Y是W除以2的余数,或者是转换为二进制后和1进行与运算的结果)。
Steam社区成员的SteamID64(64位SteamID)可以在以下几个地方找到:
- 玩家:
- 位于个人资料XML Schema的profile->steamID64元素中(可以在个人资料链接尾部添加?xml=1打开)。
- 位于“添加到好友列表”链接中(不建议在使用用户名和密码登录的应用程序中使用)。
- 组:位于“进入聊天室”链接中。
网吧账户注意事项
尽管Valve把所有网吧账户的SteamID放在网吧独立的Universe(账号体系)中,但这并没有完全做到。取而代之的是,网吧账户与普通的用户账户拥有同一个Universe(账号体系)的 SteamID,它们通常来自一个巨大的SteamID池。其中唯一的ID部分在7000000到8000000之间,但这一范围中不仅只有网吧账户,也有普通的用户账户。同样的,在这范围之外不仅只有普通的用户账户,也有网吧账户。
使用SteamID
除了能识别一个账户唯一性、账户类型与账户所属域(Universe/账号体系)的明显元素之外,SteamID还可以用来近似地确定与之相关联的Steam账户的创建时间。上述的格式中,“Z”(即“账号”)的值越低就代表创建账号的时间越早。例如,SteamID为“STEAM_0:0:1234”的账户就明显比SteamID为“STEAM_0:0:12341111”的账户注册时间要早得多。
在Valve的GoldSrc(金源)与Source Orange Box Engine(起源橙盒引擎)游戏(例如反恐精英:起源)中,“X”的值为0。但在“求生之路”、“求生之路2”与“异形丛生”这些较新的Valve游戏中,“X”值的为1。“Y”的值为0或1,是上述账户ID中的一部分。这一部分用来显示该账户所使用的身份验证服务器。
外部链接
- SteamID.co.uk - 查找玩家、物品、游戏、好友、组以及更多的工具。
- Legit-Proof.com - 从所有基于SteamID的游戏或其他项目中查找玩家和队伍的搜索引擎。
- SteamIDFinder.com - 允许玩家不启动游戏,就能快速查找SteamID的工具。
- Steam ID Finder - 允许查找与轻松复制SteamID(ID2,32位ID,64位ID)的工具。
- getSteamID - 是一个独立的工具,允许用户在Windows系统上查找曾经在本地计算机上登录过用户的SteamID。
- SteamID.com - 允许查找“反恐精英”游戏中匹配玩家SteamID的搜索引擎。
- VACBanned.com - 查找SteamID的VAC状态,并将SteamID的封禁状态添加至数据库的搜索引擎。
- SteamProfile.co.uk - 在多API站点生成指向个人资料链接的工具。