Защита аккаунта игрока - Проверка 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 пользователей онлайн

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

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

    • Alesher
      От Alesher
      НОВЕЙШИЙ МОД HEAVILY MOD 2025
      Скачать файл Имеется 14 уровень админки а также 3 уровня хелпера авторизация /alogin, имееться база данный а также минимальное количество багов.
      Добавил Alesher Добавлено 30.05.2025 Категория Моды Автор ByNikolas  
    • BESPERSPEKTIBN9AK
      От BESPERSPEKTIBN9AK
      Как убрать обьект в мэрии? 
      Искал уже по координатам из save убираю, не убирается.