Ilya_Mayor 0 Опубликовано 5 апреля, 2018 Здрасть, хочу сделать проверку по ип чтобы когда игрок заходит игру и у него не совпадает ип его кикало с игры. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 5 апреля, 2018 @Ilya_Mayor, а потом будете задавать вопросы: "Почему игроков кикает с сервера?". Вы не учли тот факт, что у многих (даже, скорее, у большинства) динамический IP адрес. То есть при каждом подключении к интернету он меняется. Либо же это производится произвольно, раз в n дней, например. Сегодня у игрока один IP, а завтра уже другой. И будет кик ни за что получать. Как мера безопасности данная идея так себе.. 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ilya_Mayor 0 Опубликовано 5 апреля, 2018 ,ну тогда чтобы администрации отправляло сообщение что у игрока сменился ип Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 5 апреля, 2018 @Ilya_Mayor, на MySQL Ваш мод? И версию, если на MySQL, укажите. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ilya_Mayor 0 Опубликовано 5 апреля, 2018 ,и как узнать версию? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
фучжинейк 16 Опубликовано 5 апреля, 2018 @Ilya_Mayor, открыть инклуд a_mysql.inc и посмотреть версию, или в консоли может тоже писаться об этом. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ilya_Mayor 0 Опубликовано 6 апреля, 2018 ,R39-5 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 7 апреля, 2018 (изменено) @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 замените на свои. Ну, и, конечно, переменную подключения к базе данных впишите. Все остальное оставьте как есть. Изменено 7 апреля, 2018 пользователем Elrmrnt-Kritik 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты