lgc-NB2Dev / nonebot-plugin-picmcstat

A NoneBot2 plugin generates a pic from a Minecraft server's MOTD
MIT License
16 stars 3 forks source link

支持SRV记录 #5

Closed LittleChest closed 11 months ago

LittleChest commented 1 year ago

服务器使用SRV记录来随机分配玩家到中继节点,同时添加后备A记录来使不支持SRV记录的系统和基岩版玩家正常进入,机器人运行在Windows上(支持SRV记录),但是机器人只能读取到后备服务器信息。

lgc2333 commented 1 year ago

目前我使用的是mcstatus库来获取服务器信息的… 这个问题先放一放,待寻找解决方案

ShootKing233 commented 1 year ago

可以用dnspython库来解析SRV记录 在环境中安装dnspython(pip install dnspython)后可以用以下代码解析minecraft的SRV记录

srv_records=dns.resolver.query('_minecraft._tcp.服务器地址', 'SRV')
    for srv in srv_records:
        host = str(srv.target).rstrip('.')
        port = srv.port

再通过解析后的host和port来获取服务器信息

lgc2333 commented 1 year ago

mcstatus库好像是支持srv解析的,只是有可能首选A等记录吧。手动解析不失为一种可选方案

XieXiLin2 commented 11 months ago

优先尝试更换 DNS,这部分问题有可能是因为 DNS 不支持 SRV 解析引起的。 如果仍有问题请向上级库 mcstatus 新建 Issue 报告。

lgc2333 commented 8 months ago

尝试 0.5.0