如何使用 C# 从 Steam ID 64 获取正常的 Steam ID

How to get the normal Steam ID from the Steam ID 64 using c#

Steams Open ID only returns Steam ID 64:

例如:76561198025336843

如何将其转换为真实的 Steam ID?

例如:STEAM_0:1:32535557

有没有办法获取信息?

这绝对有可能。真正的 Steam ID 可以通过 64 位整数 (long) 计算得出。

基本上我们可以使用some calculations提取以下两个信息:

  • 认证服务器
  • 认证Id

根据这些信息,我们可以连接 Steam ID。这里有两个实用方法:

public static string GetSteamId(string steamId64)
{
    return GetSteamId(long.Parse(steamId64));
}

public static string GetSteamId(long steamId64)
{
    var authserver = (steamId64 - 76561197960265728) & 1;
    var authid = (steamId64 - 76561197960265728 - authserver) / 2;
    return $"STEAM_0:{authserver}:{authid}";
}

用法:

var result = GetSteamId("76561198025336843");
//result: STEAM_0:1:32535557