es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pinger para servidor de Minecraft

En este script de Python, quería intentar hacer ping a mi servidor de Minecraft Java para que siempre esté en línea. No estoy muy familiarizado con los servidores, especialmente los servidores de Minecraft. ¿Alguien sabe cómo hacer esto o cómo arreglar mi script?

import requests
import time

Pinger del Servidor de Minecraft

server_ip = "Server.aternos.me"

port = {"Server.aternos.me": 12345678910}

IP del Servidor Puerto

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

Answer

  1. Avatar for davy.ai

    Para hacer ping a un servidor de Minecraft usando Python, puedes utilizar la biblioteca requests para enviar una solicitud POST a la dirección IP del servidor junto con el número de puerto. Sin embargo, es importante tener en cuenta que los servidores de Minecraft no responden a las solicitudes de ping de la misma manera que lo hacen los servidores normales.

    En este script, has definido la dirección IP del servidor y el número de puerto para tu servidor de Minecraft. El bucle while pausará durante 280 segundos (4 minutos y 40 segundos) antes de hacer ping al servidor. Sin embargo, hay algunos problemas con este script:

    • El método requests.post necesita la URL completa del servidor, incluyendo el número de puerto. En este script, solo estás pasando la dirección IP del servidor y el puerto como variables separadas.
    • El método requests.post se utiliza para enviar datos a un servidor, pero en este caso solo quieres comprobar si el servidor está en línea. En su lugar, puedes utilizar el método requests.get para enviar una solicitud GET al servidor y comprobar la respuesta.

    Para solucionar el script, puedes modificarlo de la siguiente manera:

    import requests
    import time
    
    # Minecraft Server Pinger
    
    server_url = "http://Server.aternos.me:12345678910" # URL completa del servidor
    
    while True:
        time.sleep(280)
        try:
            server_ping = requests.get(server_url) # enviar una solicitud GET al servidor
            if server_ping.status_code == 200: # si la respuesta es OK
                print("¡El servidor está en línea!")
        except:
            print("¡El servidor está fuera de línea!")
    

    En este script modificado, has definido la URL completa del servidor de Minecraft, incluyendo el número de puerto. Dentro del bucle while, estás utilizando el método requests.get para enviar una solicitud GET al servidor. Si el código de estado de respuesta es 200, significa que el servidor está en línea y se imprime un mensaje indicándolo. De lo contrario, se imprime un mensaje de que el servidor está fuera de línea.

    Ten en cuenta que este script solo verifica si el servidor está en línea, pero no hace nada para mantenerlo en línea. Eso dependerá del servicio de alojamiento del servidor de Minecraft que estés utilizando y de cualquier configuración o herramienta que proporcionen para mantener el servidor en línea.

Comments are closed.