• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

Помогите A2S запросы

infirmitive

30 Июн 2022
26
1
4
7
Хочу на Java получать информацию о сервере, но не нашел ничего кроме решения через RCON.
ТЫК
Может есть что-то подобное и под Rust?
 
Неужели никто не использовал какие-либо библиотеки подобные?
Нашел где спросить. Тут плагины иногда не знают как установить. А ты про свой код на Java.

Хочу на Java получать информацию о сервере, но не нашел ничего кроме решения через RCON.
ТЫК
Может есть что-то подобное и под Rust?
https://developer.valvesoftware.com/wiki/Server_queries#Implementations
 
  • Мне нравится
Реакции: infirmitive
да я как раз из этой доки и взял либу для кс го, но под раст она не работает
Есть сервер мастер в расте, возможно там (у фейспанч есть какой то АПИ, не помню какой) и battle metrics (если сервер добавлен).
 
  • Мне нравится
Реакции: infirmitive
Есть сервер мастер в расте, возможно там (у фейспанч есть какой то АПИ, не помню какой) и battle metrics (если сервер добавлен).
Ну вот как раз не хотелось бы использовать сторонние API мониторингов, а напрямую получать от сервера. Увидеть бы исходники раста, чтоб понимать как у них формируется запрос-ответ при опросе сервера определенного.
 
Самое интересное, что facepunch не особо отошли от валвовской системы с мастер серверами и A2S запросами. У них просто в доке это никак не описано. Тот же garry's mod через goldsrc опрашивается на изи, а в Rust че то намудрили.

Наверное, поэтому и не описывают в открытую чтоб те же зеркала не плодили, как это сейчас в кс. Банально по их доке можно с нуля зеркала написать
 
Самое интересное, что facepunch не особо отошли от валвовской системы с мастер серверами и A2S запросами. У них просто в доке это никак не описано. Тот же garry's mod через goldsrc опрашивается на изи, а в Rust че то намудрили.
Никто не куда не отходил. Зачем FP изобретать свой велосипед? Rust на вэри изи опрашивается через Source протокол. Только актуальный Rust не особо жаждет отвечать по server.port, у него для опроса есть специальный, отдельный порт server.queryport
 
  • Мне нравится
Реакции: infirmitive
Самое интересное, что facepunch не особо отошли от валвовской системы с мастер серверами и A2S запросами. У них просто в доке это никак не описано. Тот же garry's mod через goldsrc опрашивается на изи, а в Rust че то намудрили.

Наверное, поэтому и не описывают в открытую чтоб те же зеркала не плодили, как это сейчас в кс. Банально по их доке можно с нуля зеркала написать
https://github.com/cyilcode/SteamQueryNethttps://github.com/Crytilis/A2S
по первым ссылкам в гугле. думаю не сложно тоже самое на java переписать
 
  • Мне нравится
Реакции: infirmitive
вот только есть нюанс. через query порт отдает максимальное количество игроков только 44, когда сервер 300 слотовый. видимо нужно как-то иначе читать ответ сервера в плане количества игроков
 
вот только есть нюанс. через query порт отдает максимальное количество игроков только 44, когда сервер 300 слотовый. видимо нужно как-то иначе читать ответ сервера в плане количества игроков
сделай это с помощью Python, для него много готовых библиотек, а на java вытяни данные с python.
И быстрее и проще.
Либо смотри пример на Python и перепиши на Java, все равно все одинаково , что там что тут отправляешь и получаешься UDP пакеты через сокеты
 
сделай это с помощью Python, для него много готовых библиотек, а на java вытяни данные с python.
И быстрее и проще.
Либо смотри пример на Python и перепиши на Java, все равно все одинаково , что там что тут отправляешь и получаешься UDP пакеты через сокеты
я уже на java получаю готовый тип данных SourceServer, там лежит все что нужно, кроме максимального значения игроков, оно некорректное
1689098583498.png
 
1689098798611.png
как вариант - просто не выводить максимальное кол-во игроков у серверов Rust
пришли полный ответ от сервера , ip адрес можешь не маскировать, его найти просто по названию
 
1689101547053.png
первый тег mp300, хмм
найди код на python и посмотри какой массив байтов скрипт отправляет серверу, и сравни со своим. Возможно отсылается не совсем тот массив, и в ответ получаешь совсем другое значение
 
найди код на python и посмотри какой массив байтов скрипт отправляет серверу, и сравни со своим. Возможно отсылается не совсем тот массив, и в ответ получаешь совсем другое значение
да зачем усложнять, я достану число из тега max players, это 1 строчка кода
 
Активность
Пока никто не печатает сообщение