![]() |
Хочу спарсить список игроков с SA-MP сервера legacy.samp-rp.ru:7777 на Python
Сервер отвечает, но не отдает список игроков. Что пробовал на Python: Работает: - Подключение к серверу - ок - DNS legacy.samp-rp.ru -> 5.252.33.202 - Info запрос (opcode 'i') - показывает 130 игроков онлайн - Rules запрос (opcode 'r') - отдает правила сервера Не работает: - Opcode 'd' (детальные игроки) - таймаут - Opcode 'c' (базовые игроки) - таймаут - Opcode 'p' - отвечает, но только 15 байт пустых данных Вывод: Сервер специально блокирует получение списка игроков. Возвращает только базовую инфу, но самих игроков не отдает. Вопрос: Кто сталкивался с такой защитой на SA-MP серверах? Как можно обойти на Python? Может есть другие методы получить список игроков? Код: [CODE] # Запрос правил сервера - РАБОТАЕТ def get_rules(self): try: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(10) packet = b'SAMP' packet += socket.inet_aton(self.server_ip) packet += struct.pack(' Код: [CODE] # Запрос списка игроков - НЕ РАБОТАЕТ (таймаут) def get_players_detailed(self): try: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(10) packet = b'SAMP' packet += socket.inet_aton(self.server_ip) packet += struct.pack(' Код: [CODE] # Кастомный opcode 'p' - отвечает но без данных def try_opcode_p(self): try: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(5) packet = b'SAMP' packet += socket.inet_aton(self.server_ip) packet += struct.pack(' Код: Код:
# DNS разрешение - работаетКод: [CODE] # Парсинг полученных данных def parse_server_info(self, data): if len(data) > 11: offset = 11 passworded = data[offset] == 1 players = struct.unpack(' |
Это нормальное поведение, фича со списком игроков в инфо запросе работает только до определенного количества игроков. Если условно игроков больше 100 на сервере - посмотреть список можно только собственно зайдя на сервер.
Как вариант можешь парсить список отсюда - https://sanek.love/members/online?server_id=103&faction_id= Там бот как раз таки сидит на сервере и обновляет этот список раз в минуту |
Цитата:
|
Цитата:
там пишешь скрипт на заход, как получил информацию - отправил на сервере питона и вышел. проблема: если на сервере оффлайн или превышает 1000 игроков, то заполнен (вряд ли кто это сделает, сейчас вижу что у его онлайн максимум 500) |
Цитата:
|
Цитата:
Client for SA-MP. Contribute to 81Vm3/RakMagic development by creating an account on GitHub. github.com GitHub - YashasSamaga/RakSAMP: Fake client & server for SA-MP [v0.8.6-0.3.7-R2] Fake client & server for SA-MP [v0.8.6-0.3.7-R2]. Contribute to YashasSamaga/RakSAMP development by creating an account on GitHub. github.com |
Исходник - Гайд - LuaRak - RakNet в Lua!
Доброго времени суток. Представьте, что вы молодой пацан и скачиваете себе LuaRak - библиотеку для Lua, позволяющую взаимодействовать с сетевым движком RakNet внутри ваших скриптов. Данная библиотека заточена первым делом под SAMP (DDOS, DOS, BotNet, мини-прикольчики), но это не мешает... www.blast.hk Посмотри здесь, исходники есть на плюсах Цитата:
|
А переписывать весь ракнет на питон, чтобы смотреть игроков на сервере - ни разу не костыль. На гитхабе есть исходники раксампа, вперёд
|
| Время: 13:42 |