 |

22.11.2025, 05:37
|
|
Новичок
Регистрация: 08.07.2013
Сообщений: 14
С нами:
6760998
Репутация:
51
|
|
Хочу спарсить список игроков с 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 разрешение - работает
def resolve_server(self):
try:
ip = socket.gethostbyname("legacy.samp-rp.ru")
print(f"Server IP: {ip}") # 5.252.33.202
return ip
except:
return None
Код:
[CODE]
# Парсинг полученных данных
def parse_server_info(self, data):
if len(data) > 11:
offset = 11
passworded = data[offset] == 1
players = struct.unpack('
|
|
|

22.11.2025, 12:16
|
|
Познавший АНТИЧАТ
Регистрация: 03.09.2017
Сообщений: 1,244
С нами:
4575506
Репутация:
183
|
|
Это нормальное поведение, фича со списком игроков в инфо запросе работает только до определенного количества игроков. Если условно игроков больше 100 на сервере - посмотреть список можно только собственно зайдя на сервер.
Как вариант можешь парсить список отсюда - https://sanek.love/members/online?server_id=103&faction_id=
Там бот как раз таки сидит на сервере и обновляет этот список раз в минуту
|
|
|

22.11.2025, 16:26
|
|
Новичок
Регистрация: 08.07.2013
Сообщений: 14
С нами:
6760998
Репутация:
51
|
|
Сообщение от Aniki
Это нормальное поведение, фича со списком игроков в инфо запросе работает только до определенного количества игроков. Если условно игроков больше 100 на сервере - посмотреть список можно только собственно зайдя на сервер.
Как вариант можешь парсить список отсюда - https://sanek.love/members/online?server_id=103&faction_id=
Там бот как раз таки сидит на сервере и обновляет этот список раз в минуту
Задумка про парсинг с sanek.love интересная! Более того - уже реализована давно в моём телеграм-боте. Беда в том, что этот сайт иногда выдаёт ложную информацию, и соответственно тг-бот тоже кидает ложняки о входе/выходе требуемого игрока на сервере. Поэтому нужно каким-то образом парсить напрямую с сервера. Есть задумка как-то написать скрипт который буквально заходит на сервер как полноценный игрок, парсит список и выходит. Но как всё это на Python сделать - сообразить не могу.
|
|
|

22.11.2025, 16:35
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2017
Сообщений: 1,397
С нами:
4837380
Репутация:
168
|
|
Сообщение от roverman
Есть задумка как-то написать скрипт который буквально заходит на сервер как полноценный игрок, парсит список и выходит. Но как всё это на Python сделать - сообразить не могу.
Про раксампа лайт не забываем))
там пишешь скрипт на заход, как получил информацию - отправил на сервере питона и вышел.
проблема: если на сервере оффлайн или превышает 1000 игроков, то заполнен (вряд ли кто это сделает, сейчас вижу что у его онлайн максимум 500)
|
|
|

22.11.2025, 16:55
|
|
Новичок
Регистрация: 08.07.2013
Сообщений: 14
С нами:
6760998
Репутация:
51
|
|
Сообщение от kyrtion
Про раксампа лайт не забываем))
там пишешь скрипт на заход, как получил информацию - отправил на сервере питона и вышел.
проблема: если на сервере оффлайн или превышает 1000 игроков, то заполнен (вряд ли кто это сделает, сейчас вижу что у его онлайн максимум 500)
Та не. Это всё костыльный метод. Вот если бы взять какой-нибудь рабочий исходник этого-самого Раксампа, узнать как он заходит на сервер - вот там уже можно что-то думать на тему преобразования кода на Python. Но такого не наблюдаю на форуме. Может не туда смотрю.
|
|
|

22.11.2025, 17:10
|
|
Новичок
Регистрация: 27.09.2025
Сообщений: 1
С нами:
332731
Репутация:
1
|
|
Сообщение от roverman
Та не. Это всё костыльный метод. Вот если бы взять какой-нибудь рабочий исходник этого-самого Раксампа, узнать как он заходит на сервер - вот там уже можно что-то думать на тему преобразования кода на Python. Но такого не наблюдаю на форуме. Может не туда смотрю.
GitHub - 81Vm3/RakMagic: Client for SA-MP
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
|
|
|

22.11.2025, 18:41
|
|
Постоянный
Регистрация: 29.04.2018
Сообщений: 788
С нами:
4231911
Репутация:
163
|
|
Исходник - Гайд - LuaRak - RakNet в Lua!
Доброго времени суток. Представьте, что вы молодой пацан и скачиваете себе LuaRak - библиотеку для Lua, позволяющую взаимодействовать с сетевым движком RakNet внутри ваших скриптов. Данная библиотека заточена первым делом под SAMP (DDOS, DOS, BotNet, мини-прикольчики), но это не мешает...
www.blast.hk
Посмотри здесь, исходники есть на плюсах
Сообщение от roverman
Та не. Это всё костыльный метод. Вот если бы взять какой-нибудь рабочий исходник этого-самого Раксампа, узнать как он заходит на сервер - вот там уже можно что-то думать на тему преобразования кода на Python. Но такого не наблюдаю на форуме. Может не туда смотрю.
|
|
|

22.11.2025, 19:50
|
|
Познавший АНТИЧАТ
Регистрация: 18.06.2017
Сообщений: 1,632
С нами:
4686777
Репутация:
183
|
|
А переписывать весь ракнет на питон, чтобы смотреть игроков на сервере - ни разу не костыль. На гитхабе есть исходники раксампа, вперёд
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|