Система привязки аккаунта к IP

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Идея и назначение

Система сохраняет IP игрока при регистрации или первом входе.

При последующих входах сверяет текущий IP с сохраненным.

Подходит для базовой защиты аккаунтов.


Суть реализации

1. Храним строку IP для каждого игрока.

2. При первом входе сохраняем IP в переменную.

3. При следующих входах сравниваем IP и при различиях выводим предупреждение.


Реализация

Код:
new PlayerIP[MAX_PLAYERS][16];


public OnPlayerConnect(playerid)
{
    new ip[16];

    GetPlayerIp(playerid, ip, sizeof ip);

    if(PlayerIP[playerid][0] == '\0')
    {
        format(PlayerIP[playerid], sizeof PlayerIP[], "%s", ip);
        SendClientMessage(playerid, -1, "Твой IP привязан к аккаунту.");
    }
    else
    {
        if(strcmp(PlayerIP[playerid], ip, true) != 0)
        {
            SendClientMessage(playerid, -1, "Внимание, IP отличается от привязанного.");
        }
    }

    return 1;
}


Дополнительные идеи

1. Сохранять IP в файл или базу данных, а не только в памяти.

2. Блокировать вход при сильных отличиях, если включена защита.

3. Добавить команду отвязки IP при подтверждении личности.
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху