首页 > 编程问答 >我的世界服务器 Pinger

我的世界服务器 Pinger

时间:2024-08-03 16:20:55浏览次数:10  
标签:python windows minecraft

在这个 python 脚本中,我想尝试 Ping 我的 Minecraft Java 服务器,以便它始终保持在线。 我对服务器不太熟悉,尤其是 Minecraft 服务器。 有谁知道如何做到这一点,或者如何修复我的脚本。

import requests
import time

#Minecraft Server Pinger

server_ip="Server.aternos.me"

port={"Server.aternos.me": 12345678910}
#      Server IP             Port

while True:
    time.sleep(280)
    server_ping=requests.post(server_ip, port)
    print(server_ping)

你对保持 Minecraft 服务器在线的理解存在误解。对服务器执行 ping 操作可以检查它是否处于活动状态,但不能使其保持在线状态。如果服务器已经在线,ping 操作只会告诉你它是否可以访问。

为了让你的 Minecraft 服务器保持在线状态,你需要让它持续运行。Aternos 服务器已经为你处理了这个问题;它们提供了一个始终在线的平台。你不需要为此编写任何脚本。

但是,如果你想定期检查你的 Aternos 服务器是否可访问,你的脚本需要做一些修改。Minecraft 服务器不使用传统的 HTTP 请求,比如你在 requests.post 中使用的。它们使用一个自定义协议。

以下是使用 mcstatus 库检查你的 Minecraft 服务器状态的方法:

from mcstatus import MinecraftServer
import time

server_ip = "Server.aternos.me"
port = 12345678910  # 如果你的服务器使用默认端口,你可以省略这个值

server = MinecraftServer(server_ip, port)

while True:
    try:
        status = server.status()
        print(f"服务器 {server_ip}:{port} 在线 - 版本:{status.version.name} -  玩家:{status.players.online}/{status.players.max}")
    except Exception:
        print(f"服务器 {server_ip}:{port} 离线")
    time.sleep(60)  # 每 60 秒检查一次

这个脚本执行以下操作:

  1. 它导入必要的库 ( mcstatus time )。
  2. 它定义了你的服务器 IP 和端口。
  3. 它创建了一个 MinecraftServer 实例。
  4. 它进入一个循环,每 60 秒尝试获取服务器状态。
  5. 如果成功,它会打印服务器状态信息。
  6. 如果出现错误(表示服务器可能离线),它会打印一条消息,说明服务器离线。

要使用此脚本,你需要安装 mcstatus 库:

pip install mcstatus

请记住,这个脚本只 检查 你的服务器状态,并不能使其保持在线状态。Aternos 已经为你处理了这个问题。

标签:python,windows,minecraft
From: 70616108

相关文章

  • 禁用 GIL 的 Python 3.13 非常慢
    我对python3.12.0与使用3.13.0b3标志编译的python--disable-gil进行了简单的性能测试。该程序使用ThreadPoolExecutor或ProcessPoolExecutor执行斐波那契数列的计算。引入禁用GIL的PEP文档表示,存在一些开销,主要是由于有偏差......
  • 有没有办法阻止 setUp() 为 python 测试用例中的每个测试方法启动浏览器?
    我正在练习编写Web自动化测试用例,并且编写了一些函数来测试登录、在用户主页中查找我的用户名以及测试GitHub的注销功能。然而,我通过经验和阅读了解到setUp()是在每个测试方法之前启动的,而我的问题是在每个测试方法之前它都会打开一个新的浏览器。我希望我的所有测......
  • 尝试使用Python抓取需要先登录的网站但没有成功
    我正在尝试抓取一个需要登录的网站(我的路由器GUI),但无论我做了什么,我都会反复返回登录站点的源代码,而不是成功登录后出现的页面。我做了一些阅读,并意识到我需要返回POST请求的答案。我想我找到了它们并返回了所需的值,但仍然-似乎没有任何效果。我使用https://curl.tri......
  • 给python初学者的一些建议
    写在开篇关于Python,可以这么说,这几年借着数据科学、机器学习与人工智能的东风,Python老树开新花,在风口浪尖上居高不下。Python之所以这么受大家的青睐,是因为它语言简洁,上手容易,让非计算机专业的人员也能快速上手,享受编程开发带来的便利和福利。但Python再简单,它也是一......
  • Python中15个递归函数经典案例解析
    1.阶乘计算阶乘是一个常见的递归应用,定义为n!=n*(n-1)*…*1。deffactorial(n):ifn==0:return1else:returnn*factorial(n-1)print(factorial(5))#输出:1202.斐波那契数列斐波那契数列的每一项都......
  • 如何使用 python (使用服务帐户)在应用程序脚本 Web 应用程序上触发 doGet()?
    我想从返回json的应用程序脚本Web应用程序触发doGet(e)事件。我们的网络应用程序无法在我们的组织域之外访问,因此需要服务帐户。我执行了下面的代码,但“发生错误:401客户端错误”fromgoogle.oauth2importservice_accountfromgoogle.auth.transport.requestsimpor......
  • Windows不支持用USB连接多部手机
    上下文一开始我以为是我的USB坏了,但我发现换数据线也不好解决。我感觉每次好像在我连接两部手机后就会出问题。然后我又发现驱动名称叫libusbk,经过一番搜索后,我在隔壁libusb发现问题所在。解释Windows的WinUSB不支持连接多部手机。连接多部手机后会导致无法再连接手机。消息来......
  • 如何使用 BeautifulSoup python 查找选择标签的选定选项值
    我正在尝试从python中的htmlselect标签获取选定的值。好吧,当选项属性设置为selected="selected"时,它是成功的,但我试图废弃的网站具有不同的选项属性,例如:-html="""<select><optionvalue="">Pleaseselectavlalue</option><o......
  • 12:Python元组属性
    #元组tuple,元素不可被修改,不能被增加或则删除tu=(111,'alex',(11,22),[(33,44)],True,33,44,)#一般写元组的时候,最后可以加个逗号不报错print(tu)tu=(111,'alex',(11,22),[(33,44)],True,33,44,)v=tu[0]#元组索引print(v)tu=(111,'alex',(11,2......
  • Windows不支持用USB连接多部手机
    上下文一开始我以为是我的USB坏了,但我发现换数据线也不好解决。我感觉每次好像在我连接两部手机后就会出问题。然后我又发现驱动名称叫libusbk,经过一番搜索后,我在隔壁libusb发现问题所在。解释Windows的WinUSB不支持连接多部手机。连接多部手机后会导致无法再连接手机。消息来......