首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python-valve查询非官方服务器的流

Python-valve查询非官方服务器的流
EN

Stack Overflow用户
提问于 2017-10-23 17:46:48
回答 1查看 601关注 0票数 0

我已经使用python-valve库设置了一些代码,以便在steam中查找ark服务器及其数据。

我用来查找所有欧洲服务器的当前代码如下:

代码语言:javascript
运行
复制
import logging

from gevent.pool import Pool
from valve.source.master_server import MasterServerQuerier
from valve.source.a2s import ServerQuerier, NoResponseError
from valve.source.messages import BrokenMessageError

MASTER_HOST = 'hl2master.steampowered.com'
MASTER_TIMEOUT = 60
SERVER_TIMEOUT = 5


pool = Pool(size=50)


def get_server_stats(address):
    server = ServerQuerier(address, timeout=SERVER_TIMEOUT)
    try:
        info = server.info()

        logging.info(u'Updated {0}:{1} █ {player_count}/{max_players} █  {server_name} █ {map} █ {server_type}'.format(
            address[0], address[1], **info)
        )
        return True
    except (NotImplementedError, NoResponseError, BrokenMessageError):
        pass


def find_servers():
    count = 0
    greenlets = []
    master = MasterServerQuerier(
        address=(MASTER_HOST, 27011), timeout=MASTER_TIMEOUT
    )
    try:
        for address in master.find(region='eu',
                                gamedir=u"ark_survival_evolved"):
            greenlets.append(pool.spawn(get_server_stats, address))
            count += 1
    except NoResponseError as e:
        # Protocol is UDP so there's no "end"
        if u'Timed out' not in e.message:
            logging.warning('Error querying master server: {0}'.format(e))
    finally:
        logging.info('Found {0} addresses'.format(count))
        return greenlets


if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO)

    results = find_servers()

    logging.info('Counting results...')
    results = [result.get() for result in results]

    logging.info('Collected {0}'.format(len(results)))
EN

回答 1

Stack Overflow用户

发布于 2017-10-23 18:08:37

显然,将区域更改为rest可以完成此工作

代码语言:javascript
运行
复制
for address in master.find(region='rest',
                                gamedir=u"ark_survival_evolved"):
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46886331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档