Софт Server Pinger v1.0 | Проверяй онлайн не заходя в игру (Безделушка) Python 3.6 и выше

dmavv

Новичок
Автор темы
4
6
Server Pinger v1.0 | Проверяй онлайн не заходя в игру (Безделушка) Python 3.6 и выше
Вообще смысл этого скрипта в том чтобы смотреть онлайн и список игроков которые сейчас на сервере (только 12 человек) не заходя в игру
Пример:
Сервер: sp.spworlds.ru
Онлайн: 152/300
Версия: Pufferfish 1.21.1
Описание: ⭐ [Сервер Прикольный]
Игроки онлайн (Первые 12 человек):
- Ketchypp
- Rygson
- JustHereToBeHere
- 2025Qvber
- MisterHysenberg
- Maxstill
- Vesspucha
- Mefis_TH
- Neu3al
- Gorynex
- Nezerz
- Saivan
Пинг 1: 53.38 ms
Пинг 2: 450.90 ms
Пинг 3: 57.01 ms
Пинг 4: 53.22 ms
Пинг 5: 55.59 ms
Средний пинг: 134.02 ms

Необходимые библиотеки:
re (По дефолту она у вас должна быть)
mcstatus - Команда для установки (pip install mcstatus)

Python:
import re
from mcstatus.server import JavaServer

def clean_minecraft_text(text):
    return re.sub(r"\§[0-9a-fk-or]", "", text)

def get_server_status(ip):
    try:
        server = JavaServer.lookup(ip)
        status = server.status()
        description = clean_minecraft_text(status.description)
        version = clean_minecraft_text(status.version.name)

        print(f"Сервер: {ip}")
        print(f"Онлайн: {status.players.online}/{status.players.max}")
        print(f"Версия: {version}")
        print(f"Описание: {description}")

        if status.players.sample:
            print("Игроки онлайн (Первые 12 человек):")
            for player in status.players.sample:
                print(f" - {clean_minecraft_text(player.name)}")
        else:
            print("Список игроков недоступен. (Пиратка?)")

        total_latency = 0
        for i in range(5):
            try:
                latency = server.ping()
                total_latency += latency
                print(f"Пинг {i + 1}: {latency:.2f} ms")
            except Exception as ping_error:
                print(f"Ошибка при получении пинга на попытке {i + 1}: {ping_error}")

        if total_latency > 0:
            average_latency = total_latency / 5
            print(f"Средний пинг: {average_latency:.2f} ms")
        else:
            print("Не удалось вычислить средний пинг. (ТемпБан? Попробуйте позже)")

    except Exception as e:
        print(f"Не удалось получить информацию о сервере: {e}")

if __name__ == "__main__":
    ip = input("Введите IP адрес сервера (например, example.com:25565): ")
    get_server_status(ip)
Если вы не разбираетесь вообще в том как это запускать то посмотрите любой гайд с ютуба.
 

Вложения

  • mcping.py
    1.9 KB · Просмотры: 5
Последнее редактирование:

fokichevskiy

Известный
472
244
у меня единственный вопрос, почему питон версии 3.6, если уже 3.13?
 

dmavv

Новичок
Автор темы
4
6
у меня единственный вопрос, почему питон версии 3.6, если уже 3.13?
от 3.6, и я не понимаю к чему ты поставил реакцию негативную - ведь я указал что это безделушка и мб кому нибудь скрипт действительно может быть полезен.
 
Последнее редактирование:

fokichevskiy

Известный
472
244
от 3.6, и я не понимаю к чему ты поставил реакцию негативную - ведь я указал что это безделушка и мб кому нибудь скрипт действительно может быть полезен.
вот назови мне того, кому твоя штука просто с использованием библиотеки в которой это всё запросто делается может понадобиться? я думаю если человек захочет получить информацию о сервере, то он точно не будет этого искать на бластхаке и возьмет пример с pip mcstatus

этот скрипт не более чем твое развитие в использовании новых библиотек и его не следует выкладывать в общий доступ
 

Ebatte_Sratte

Участник
67
12
Есть инфа как брать другую инфу? Например у 2б2т если навестись на количество игроков будет показана очередь.