Sign in to follow this  
Followers 0
Guest stibs

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

1 post in this topic

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

Всем привет! Не делал я давненько уроков по защите игрока. Думаю, самое время это сделать. Давайте расскажу вам суть. Игрок заходит на сервер. Если 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);
    }
}

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

Спойлер

Идем в нашу бд и создаем новое поле в конец таблицы с параметрами:
Имя: ваше, которое будете использовать в сохранении / загрузке. 
Тип: int
Длина: 7
Значение по умолчанию: нет. 

Спойлер

Если у вас файлы, добавьте в загрузку / сохранение аккаунта данный параметр. 
Использовать при загрузке:
ini_getInteger(файл, "переменная", переменная для сохранения);
Использовать при сохранении:
ini_setInteger(файл, "переменная, которую указали выше", переменная для изменения);

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

Спойлер

cache_get_field_content(0, "название переменной", LastLoginIP[playerid]);

 

Спойлер

Как выше указано:
 


ini_getInteger(переменная файла, "название переменной", LastLoginIP[playerid]);

 

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

Автор: @stibs

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Андрей Бочарников
      By Андрей Бочарников
      Ищу скриптера, который сможет вырезать систему поворотников, аварийки из мода Radmir RP и вписать в мод. Платно.
    • NoVate
      By NoVate
      Доброго времени суток.
      Представляю базовую систему контейнеров для сервера SA:MP.
      Подойдёт для любого сервера, начиная от DM, заканчивая RP (но для RP его нужно доработать как мне кажется).
       
       

      Больше о системе и её визуал можно увидеть в видео тут.
    • NoVate
      By NoVate
      Container System
      Просмотр файла Доброго времени суток.
      Представляю базовую систему контейнеров для сервера SA:MP.
      Подойдёт для любого сервера, начиная от DM, заканчивая RP (но для RP его нужно доработать как мне кажется).
       
       

      Больше о системе и её визуал можно увидеть в видео тут.
      Добавил NoVate Добавлено 20.09.2022 Категория Скрипты Автор NoVate  
    • NoVate
      By NoVate


      Просмотр файла New Life RP | CR:MP
      Доброго времени суток.

      Меня зовут Евгений и я единственный разработчик кода для данного мода.

      Давайте пройдёмся немного про сам мод и что он из себя представляет.
      И так, начнём! Мод создавался изначально под CR:MP 0.3e модификацию и вскоре через буквально месяц разработки перешёл на CR:MP 0.3.7. Почему перешли на версию, которая находится до сих пор в ОБТ? По поводу этого есть самый важный момент - PED's система. Как все знают, что в CR:MP на версии клиента 0.3e невозможно создать PED'a и что-то сделать с ним вообще. Поэтому немного подумав и было решение перейти на эту версию клиента. Ну а так же синхронизация лучше и немного функционала, а на счёт багов. Я пока ничего такого не заметил, не могу сказать.
      Но сразу возникает вопрос "А как будут заходить игроки на сервер?". На этот банальный вопрос есть банальный ответ - свой лаунчер. Да, свой, обычный и практичный лаунчер. На дворе 21 век и у каждого сервера (даже не проекта) есть лаунчер. Сделать его не так уж и сложно (для начала будет достаточно просто входа на сервер), а в будущем он сделает для вас многое.

      Я думаю стоит поговорить на счёт мод-пака для сервера.
      Мод-пак сервера был взят со старого RADMIR'a (за что большое спасибо), но взят был исключительно для тестов, так как нужно было срочно и качественно. Но, всё же, есть и кое что своё. Конкретно в мод-паке присутствуют личные модели следующих объектов: ларёк (систему позже опишу), интерьер 24/7, интерьер отеля (холл, коридор, комната).
      ВНИМАНИЕ! Мод продаётся отдельно от мод-пака и сам мод-пак НЕ ВХОДИТ в цену мода. Если вы хотите купить мод-пак, то пишите об этом СРАЗУ! Для интересующихся сразу отвечу на вопрос "Сколько стоит мод-пак?". Конкретно МОДЕЛИ, которые были сделаны стоят 1.500 рублей, мод-пак RADMIR'a бесплатен!

      Ну а теперь перейдём к системам, их к сожалению немного.
       
       
       
       
       
       
       
      Под конец хотел бы добавить, что это НЕ ВСЕ СИСТЕМЫ И ФУНКЦИИ данного мода, при покупки и осмотре можно найти кучу наработок, которые можно сделать и получить довольно качественный функционал. Код выполнен в современном стиле (были использованные самый лучшие и последние инклуды и плагины) и довольно понятен каждому начинающему и уже более опытному кодеру на Pawn.

      Под конец опишу плагины, которые были использованы и цену на данный мод, чтобы вы понимали что да и как.
       
       
      Добавил NoVate Добавлено 18.09.2022 Категория Моды Автор NoVate