You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python通过用户名查询Steam ID

问题排查
  • 当前使用的valve.source.a2s模块基于A2S协议实现,该协议的玩家查询接口设计上仅返回玩家昵称、分数、在线时长三类数据,本身不包含Steam ID字段,因此无法从现有返回结果中提取目标ID。
  • valve.steam.id模块仅用于Steam ID不同格式的互相转换,不具备通过用户名查询ID的能力,因此无法直接用该模块实现需求。
解决方案

方案一:通过服务器RCON查询(推荐,准确率100%)

如果你持有目标服务器的RCON密码,可通过RCON执行status命令,解析返回结果直接获取每个玩家的Steam ID,参考修改代码如下:

import valve.source.a2s
import valve.source.rcon
import time
import re

Server_IP = input("Server IP : ")
ServerPort = int(input("Server PORT :"))
RCON_PWD = input("RCON Password : ")

SERVER_ADDRESS = (Server_IP, ServerPort)
# 预编译正则匹配status返回的玩家行信息,提取SteamID和昵称
player_regex = re.compile(r'^#\s+\d+\s+"(.+?)"\s+(STEAM_[0-5]:[01]:\d+)\s+', re.MULTILINE)

while True:
    player_count = 1
    # 先拿A2S的玩家列表
    with valve.source.a2s.ServerQuerier(SERVER_ADDRESS) as server:
        info = server.info()
        a2s_players = server.players()["players"]
    # 拿RCON的status结果获取SteamID
    with valve.source.rcon.RCON(SERVER_ADDRESS, RCON_PWD) as rcon:
        status_res = rcon.exec("status")
    # 解析出所有玩家的昵称和SteamID对应关系
    id_map = {}
    for match in player_regex.finditer(status_res):
        user_name = match.group(1)
        steam_id = match.group(2)
        id_map[user_name] = steam_id

    print(f"{info['player_count']}/{info['max_players']} {info['server_name']}")
    for player in sorted(a2s_players, key=lambda p: p["score"], reverse=True):
        user_name = player["name"]
        duration = round(player["duration"], 2)
        if not user_name:
            print(f"{player_count:>2} | duration(sec) = {duration:<20} EpicGames")
        else:
            steam_id = id_map.get(user_name, "未查询到ID")
            print(f"{player_count:>2} | duration(sec) = {duration:<20} Steam 用户:{user_name} SteamID:{steam_id}")
        player_count += 1
    time.sleep(1)

方案二:通过Steam Web API按昵称查询(无RCON时使用,存在误差)

需要自行申请Steam Web API密钥,调用对应接口通过昵称查询Steam ID,该方案局限性较高:仅当用户自定义URL和昵称完全一致时才能查询到结果,且存在重名匹配错误的可能,仅做备选。

内容的提问来源于stack exchange,提问作者jjun4341

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 04:36:01