Как получить подробную информацию о любом сервере?

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
7
Реакции
-2
Предупреждения
5
Неверный раздел форума
Как получить подробную информацию о любом сервере?
 
Сообщения
7
Реакции
-2
Предупреждения
5
@Loki,Количество игроков, установленные моды, какая карта и тд
 
Сообщения
25
Реакции
2
@antefil,все необходимое для пользователя указано в самой стандартной инфо сервера, многие сервера свой мод вписывают в названии.
 
Сообщения
7
Реакции
-2
Предупреждения
5
Akilano, Я нагуглил что к серверу можно обратиться через UDP и запросить A2S_INFO, A2S_RULES и A2S_PLAYER но в ответе просто дичь какая то, декодирование байтов почему то может происходит по разному или сервер так по разному отвечает. По это причине нужен какой то более стабильный способ
 
Сообщения
275
Реакции
282
Предупреждения
1
Помог
2 раз(а)
Мне кажется или он хочет такую инфу доставать:
1730101724131.png
1730101750030.png
28 Окт 2024
1730102091404.png
 

Download all Attachments

Сообщения
7
Реакции
-2
Предупреждения
5
@Arni,в целом да что то такое и надо. Хотелось бы написать на php что бы не городить костылей, но написал на питоне с использованием библиотеки так и не понял почему на php у меня данные прыгают
28 Окт 2024
Скинь пожалуйста ServerInfo.php
 
Сообщения
7
Реакции
-2
Предупреждения
5
Ладно я оставлю работу через питона в принципе это даже логичней чем php подружить только надо их. Там и данных больше собрать можно!
 
Сообщения
384
Реакции
47
Помог
6 раз(а)
На python можно такой скрипт попробовать:
Python:
import asyncio
import html
import a2s

async def main() -> None:
    input_server_ip: str = input("Server IP: ")
    input_server_port: int = int(input("Server Port: "))

    try:
        result = await a2s.ainfo((input_server_ip, input_server_port))
        result_players = await a2s.aplayers((input_server_ip, input_server_port))
        result_message = f"Сервер - {result.server_name}\n" \
                         f"Карта - {result.map_name}\n" \
                         f"Количество игроков - {result.player_count}\n" \
                         f"Максимум игроков - {result.max_players}\n" \
                         f"Количество ботов - {result.bot_count}\n"

        for idx, player in enumerate(result_players):
            result_message += f"{idx + 1} | {html.escape(s=player.name, quote=True)} | {player.duration} | {player.score}"

        print(result_message)
    except Exception as e:
        print(f"Ошибка при получении данных - {e}")


if __name__ == "__main__":
    try:
        asyncio.run(main())
    except KeyboardInterrupt:
        pass
 
Сообщения
7
Реакции
-2
Предупреждения
5
Arni, Хорошо и правильно что берёшь деньги.
28 Окт 2024
@DEVV,Чёт подобное и реализовал а обмен между питоном и php сделал через json
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу