Защита аккаунта игрока - Проверка IP при входе

В теме 1 сообщение

Гость stibs
Новичок

Сразу скажу, урок не совсем для новичков, его нужно подгонять под свой мод, уроков именно под ваш мод в общем доступе не бывает. Помните об этом. Данный урок не исключение, но если нужна помощь, то велком в сообщения этой темы.

Всем привет! Не делал я давненько уроков по защите игрока. Думаю, самое время это сделать. Давайте расскажу вам суть. Игрок заходит на сервер. Если IP текущей сессии и предыдущей различны, система отправит администрации текст, который поможет им распознать будущего взломщика. Проверять буду по подсети (первые два значения IP адреса), так как у многих уже сейчас динамический IP адрес, и проверять по полному адресу уже ни к чему. 


В начало мода (ко всем глобальным переменным):

new LastLoginIP[MAX_PLAYERS][7];

Далее идем в сток / паблик загрузки вашего аккаунта и добавляем:

//вставляем сюда загрузку LastLoginIP из бд / файлов
new ip[16], ips[4];
GetPlayerIp(playerid, ip, sizeof(ip));
sscanf(ip, "p<.>dddd", ips[0], ips[1], ips[2], ips[3]);// получаем ип адрес и каждое значение пишем в отдельную переменную
new str[7];
format(str, sizeof(str), "%d",ips[0]+ips[1]);
if(!strlen(LastLoginIP[playerid]))
{
    strmid(LastLoginIP[playerid], str, 0, strlen(str), sizeof(str)); // записываем данные в переменную, если еще не записано.
}
else
{
    if(LastLoginIP[playerid] != str)
    {
        //сюда можете поставить функцию отправки сообщения администраторам, я поставлю вывод в общий чат. сугубо индивидуально
        static const fmt_str[] = "Игрок %s подозревается во взломе / передаче аккаунта. У него не совпадает подсеть, значит, он сидит с разных городов!";
        new string[sizeof(fmt_str) + (-2+MAX_PLAYER_NAME)],
        name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, sizeof(name));
        format(string, sizeof(string), fmt_str, name);
        SendClientMessageToAll(-1, string);
    }
}

В самой базе данных / файлах создайте место под данную переменную.

  База данных (открыть спойлер)
  Файлы (открыть спойлер)

Ну а после добавьте загрузку данного параметра. 

  База данных (открыть спойлер)
  Файлы (открыть спойлер)

Код загрузки вставлять перед кодом проверки на ип. 

Автор: @stibs

Если будут ошибки, пишите в тему.

При копировании на другие порталы указывайте ссылку на этот, а также мое авторство. 

Еще раз повторюсь, материал не может быть переделан под каждый мод в общем доступе. Его нужно подделывать под ваш, т.е. заменять переменные и прочее. Максимально универсально писал. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • vexlinee
      От vexlinee
      Всем здравствуйте, сидел я на майнкрафт читиках и поднадоело, теперь хочу сделать студию либо свой крмп проектик
      Так вот вопросы:
      1. Какие программы лучше всего использовать для лаунчеров? В большенстве видел Android studio
      2. Как запустить сам мод, можно ли это сделать локально и быстро, или стоит переносить на хост 
      3. Про какой кеш говорят типы под лаунчерами 
      4. Как сделать установку сборки через лаунчер по кнопке играть 
    • crearot
      От crearot
      Мы ищем талантливого 3D-моделлера в команду.  Гибкий график, опытный коллектив.
      Что мы предлагаем:
      — Конкурентоспособную и стабильную заработную плату;
      — Гибкий график и возможность работать удаленно;
      — Работа в окружении специалистов, готовых способствовать развитию ваших навыков;
      — Перспективы карьерного и профессионального роста.
      От вас требуется:
      — Опыт владением 3ds Max и Blender для моделирования и текстурирования;
      — Работа по референсам;
      — Опыт создания интерьеров и экстерьеров;
      — Наличие портфолио.
      — Работа с текстурами (архивы (сборка, пересборка), добавление текстур, создание архивов под разные видеоускорители(PVR, DXT, ETC))
      — Работа с архивами моделей (.img образы) для добавления моделей и пересборки
      — Моделирование карты, работа по т/з для создания ландшафта на карте и т.д


      Отправьте резюме: → https://forms.gle/Trn4vjMEi58EDybv6