Перейти к содержанию
Авторизация  
Ilya_Mayor

Проверка по ип

Рекомендуемые сообщения

Ilya_Mayor

Здрасть, хочу сделать проверку по ип чтобы когда игрок заходит игру и у него не совпадает ип его кикало с игры.

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


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

@Ilya_Mayor, а потом будете задавать вопросы: "Почему игроков кикает с сервера?". Вы не учли тот факт, что у многих (даже, скорее, у большинства) динамический IP адрес. То есть при каждом подключении к интернету он меняется. Либо же это производится произвольно, раз в n дней, например. Сегодня у игрока один IP, а завтра уже другой. И будет кик ни за что получать. Как мера безопасности данная идея так себе..

  • Like 2

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


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

,ну тогда чтобы администрации отправляло сообщение что у игрока сменился ип 

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


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

@Ilya_Mayor, на MySQL Ваш мод? 


И версию, если на MySQL, укажите.

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


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

,и как узнать версию? 

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


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

@Ilya_Mayor, открыть инклуд a_mysql.inc и посмотреть версию, или в консоли может тоже писаться об этом. 

  • Like 1

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


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

,R39-5 

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


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

@Ilya_Mayor

public OnPlayerConnect(playerid)
{
	static ip[16], name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, sizeof name);
	GetPlayerIp(playerid, ip, sizeof ip);
	
	static string[89+(-2+sizeof ip)+(-2+sizeof name)+1];
	format(string, sizeof string, "SELECT EXISTS (SELECT id FROM accounts WHERE ip = '%s' AND name = '%s') AS result LIMIT 1", ip, name);
	mysql_function_query(/*переменная подключения к базе*/, string, true, "@CheckUpdateIpAddress", "i", playerid);
	return 1;
}
@CheckUpdateIpAddress(playerid);
@CheckUpdateIpAddress(playerid)
{
	new rows, fields;
	cache_get_data(rows, fields);
	if(!rows)
		return 0;
	
	fields = cache_get_field_content_int(0, "result", /*переменная подключения к базе*/);
	if(field == 1)
		return 0;
	
	SendClientMessage(playerid, -1, "Ваш IP адрес отличен от IP адреса при регистрации."); // замените строку на свою
	return 1;
}

Столбцы ip и name замените на свои. Ну, и, конечно, переменную подключения к базе данных впишите. Все остальное оставьте как есть.

Изменено пользователем Elrmrnt-Kritik
  • Like 1

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

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

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

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.