Firewalll Опубликовано 29 Января 2006 Жалоба Поделиться Опубликовано 29 Января 2006 Как запретить больше одной регистрации с одного айпи в локальной сети?Вот бы такой мод. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 29 Января 2006 Жалоба Поделиться Опубликовано 29 Января 2006 Проверять наличие в БД регистрационного IP, а в чём конкретно проблема? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 30 Января 2006 Жалоба Поделиться Опубликовано 30 Января 2006 Register.php Ищем://+-------------------------------------------- //| Is this email addy taken? //+-------------------------------------------- if (! $ibforums->vars['allow_dup_email'] ) { $DB->query("SELECT id FROM ibf_members WHERE email='".$in_email."'"); $email_check = $DB->fetch_row(); if ($email_check['id']) { $this->show_reg_form('err_email_exists'); return; } }ниже //+-------------------------------------------- //| Разрешить региться много раз с одного IP? //+-------------------------------------------- $DB->query("SELECT id FROM ibf_members WHERE ip_address='".$ibforums->input['IP_ADDRESS']."'"); $ip_check = $DB->fetch_row(); if ($ip_check['id']) { $this->show_reg_form('err_no_multi_ips'); return; } lang_register.php'err_no_multi_ips' => "любой текст", а в чём конкретно проблема? В том, что человек хочет запретить региться одному челу 100 раз Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Firewalll Опубликовано 30 Января 2006 Автор Жалоба Поделиться Опубликовано 30 Января 2006 Спасибо, Jax!!!! Буду пробовать, как будет кто-то злоупотреблять. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 30 Января 2006 Жалоба Поделиться Опубликовано 30 Января 2006 Firewalll, да ты сам проверь-то Попробуй зарегиться. Может и не работает нехрена. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 30 Января 2006 Жалоба Поделиться Опубликовано 30 Января 2006 Ещё одним запросом не прикольно.Лучше поставить на ip_address UNIQUE KEY и анализировать код ошибки при добавлении аккаунта.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Firewalll Опубликовано 31 Января 2006 Автор Жалоба Поделиться Опубликовано 31 Января 2006 Song, не понял, если честно. Jax, я почему не ставлю, потому что пока нет надобности, придется все назад возвращать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
asoloviev Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Cеть не инфолайн случаем ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Cеть не инфолайн случаем ?В приват с такими вопросами.Jax, я почему не ставлю, потому что пока нет надобности, придется все назад возвращать.хех, если нет надобности, зачем просил людей думать? Там возвращать нечего, один раз скопировал/вставил и вернул все назад. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Firewalll Опубликовано 31 Января 2006 Автор Жалоба Поделиться Опубликовано 31 Января 2006 Хорошо на днях обязательно попробую. Спасибо за мод! Просто щас дел полно, постараюсь поскорее... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Firewalll, Song имеет в виду поставить в базе на поле с ip-адресом уникальный ключ. т.е. если будет попытка добавления уже существующего в базе ip-адреса, то будет выведена определенная ошибка. а ее уже и надо анализировать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Ну чтобы с анализом не парится, можно при реге просто кидать IP в бан лист, думаю одним запросом при реге - не страшно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 2 Февраля 2006 Жалоба Поделиться Опубликовано 2 Февраля 2006 Ну чтобы с анализом не паритсяДа там вообщем-то 3 строчки добавить..... Ну чтобы с анализом не парится, можно при реге просто кидать IP в бан лист, думаю одним запросом при реге - не страшно.conf_global.php сильно расти будет. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Felix Опубликовано 2 Февраля 2006 Жалоба Поделиться Опубликовано 2 Февраля 2006 Вы бы для 2.1 это реазиловали, а то уже измучался Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 3 Февраля 2006 Жалоба Поделиться Опубликовано 3 Февраля 2006 2Song, я не любитель бани - незнал, что он в файлик пишется... Теперь знаю. Раз в файлик - тогда в чём проблема просто при регистрацци добавить пару строк? 2Felix, да ты просто запрети да и только - обычно работает.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 4 Февраля 2006 Жалоба Поделиться Опубликовано 4 Февраля 2006 2Song, я не любитель бани - незнал, что он в файлик пишется... Теперь знаю. Раз в файлик - тогда в чём проблема просто при регистрацци добавить пару строк?честно говоря, не понял.Строк для чего? Для записи в базу? Млин ну чтоже вы придумываете велосипед-то, а? вот строчка из Register.php: //+-------------------------------------------- //| Insert into the DB //+-------------------------------------------- $DB->query("INSERT INTO ibf_members (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")");её нужно заменить на: $DB->return_die = 1; //+-------------------------------------------- //| Insert into the DB //+-------------------------------------------- $DB->query("INSERT INTO ibf_members (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")"); if ( $DB->error ) { $std->Error( array( LEVEL => 1, MSG => здесь нужная вам языковая константа) ); } $DB->return_die = 0; не надо никаких строчек, запросов и прочей херни. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
dman Опубликовано 5 Февраля 2006 Жалоба Поделиться Опубликовано 5 Февраля 2006 Эм,т.к в пхп не силен,то задам такой вопросик,а если в Register.php такая штука - //----------------------------------------- // Insert into the DB //----------------------------------------- $DB->do_insert( 'reg_antispam', array ( 'regid' => $regid, 'regcode' => $reg_code, 'ip_address' => $ibforums->input['IP_ADDRESS'], 'ctime' => time(), ) ); } $this->page_title = $ibforums->lang['lost_pass_form']; $this->nav = array( $ibforums->lang['lost_pass_form'] ); if ($errors != "") { $this->output .= $this->html->errors( $ibforums->lang[$errors]); } $this->output .= $this->html->lost_pass_form($regid); if ($ibforums->vars['bot_antispam'] == 'gd') { $this->output = str_replace( "<!--{REG.ANTISPAM}-->", $this->html->bot_antispam_gd( $regid ), $this->output ); } else if ($ibforums->vars['bot_antispam'] == 'gif') { $this->output = str_replace( "<!--{REG.ANTISPAM}-->", $this->html->bot_antispam( $regid ), $this->output ); } } Что здесь менять,чтобы добиться такого же результата? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 5 Февраля 2006 Жалоба Поделиться Опубликовано 5 Февраля 2006 Здесь - ничего. Ищете запрос вида insert into ibf_members, а ниже затолкать: if ( $DB->error ) { $std->Error( array( LEVEL => 1, MSG => здесь нужная вам языковая константа) ); } $DB->return_die = 0;и выше тоже затолкать:$DB->return_die = 1; Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
addictedtobass Опубликовано 19 Февраля 2006 Жалоба Поделиться Опубликовано 19 Февраля 2006 А если нужно разрешить регистрацию только с определённых ip? Принцип понятен, но не силён в массивах. //----------------------------------------- // Allow registration only for ip`s below //----------------------------------------- $LocalNet = array(ip2long("62.33.12.0"),ip2long("62.33.12.255"), ip2long("62.33.13.0"),ip2long("62.33.13.255"), ip2long("83.234.64.0"),ip2long("83.234.64.255"));Как теперь проверить, встречается ли в массиве $LocalNet значение переменной $_SERVER["REMOTE_ADDR"] ?Поправьте, пожалуйста, если сам массив задан неверно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 19 Февраля 2006 Жалоба Поделиться Опубликовано 19 Февраля 2006 in_array() А что такое ip2long ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 19 Февраля 2006 Жалоба Поделиться Опубликовано 19 Февраля 2006 ip2long Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 19 Февраля 2006 Жалоба Поделиться Опубликовано 19 Февраля 2006 Ясно. ну и нафига он? Массив строк использовать мешает религия ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
addictedtobass Опубликовано 19 Февраля 2006 Жалоба Поделиться Опубликовано 19 Февраля 2006 Ясно. ну и нафига он? Массив строк использовать мешает религия ?Как проверить всю подсеть массивом строк я не знаю.В общем родил такую штуку: /sources/register.php находим //----------------------------------------- // Is this email addy taken? CONVERGE THIS?? //----------------------------------------- if ( $ibforums->converge->converge_check_for_member_by_email( $in_email ) == TRUE ) { $this->show_reg_form('err_email_exists'); return; } Ниже добавляем (забиваем айпишники с которых можно будет региться) //----------------------------------------- // Allow registration only for ip`s below //----------------------------------------- $LocalNet = array(ip2long("62.33.12.0"), ip2long("62.33.13.0"), ip2long("83.234.64.0"), ip2long("85.249.59.0")); $rem_ip = ip2long($_SERVER["REMOTE_ADDR"]); $i = 0; $last_id = count($LocalNet)-1; //id последнего элемента $LocalNet do { $dif = $rem_ip - $LocalNet[$i]; if ($dif < 255 and $dif > 0) break; } while ($i++ < $last_id); if ($i == $last_id+1) { $this->show_reg_form('err_only_our_ips'); return; } В /lang/ru/lang_register.php добавляем$lang['err_only_our_ips'] = "Регистрация с вашего ip-адреса запрещена."; В /lang/en/lang_register.php'err_only_our_ips' => "Registration from your ip-address denied.", Немного путано, но работает Минусы - можем задать подсеть только 255.255.255.0.Если б ещё массив $LocalNet через админку задавать....эх, мячты, мячты Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
MotoDen Опубликовано 20 Февраля 2006 Жалоба Поделиться Опубликовано 20 Февраля 2006 А как для 2.1.х сделать? Почитал тему, но толком ничего не понял...Заранее спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 21 Февраля 2006 Жалоба Поделиться Опубликовано 21 Февраля 2006 Как проверить всю подсеть массивом строк я не знаю.циклом + регвыр Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.