YAD Опубликовано 21 Января 2009 Жалоба Поделиться Опубликовано 21 Января 2009 Здравствуйте, Я уже описывал данный вопрос в разделе безопасности, но возможно здесь искать ответ будет уместнее. Есть локальная сеть и в ней есть локальный форум. Машина форумом имеет 2 сетевухи, одна "смотрит" в локалку с IP 192.168.х.х, вторая "смотрит" в инет. из инета форум доступен. Задача состоит в том, чтобы просматривать и заходить на форум под своими логами могли пользователи, зарегестрировавшиеся ТОЛЬКО в локальной сети. Регистрации извне не должно быть. Приблизительно выглядеть это должно так: 1. Я, Вася Пупкин, захожу с домашнего компа на форум, предназначенный только для пользователей другой локальной сети (например, форум студенческой локальной сети университета). Читаю, что там написано и думаю в нем нагадить или запустить злосного бота! Пытаюсь зарегестрироватся, но получаю от ворот - поворот, а-ля "с Вашего IP регистрация невозможна." 2. Я, Леонид Горлохвотайка, пользователь локальной сети, регистрируюсь на форуме с компа, подключенного к этой локальной сети. Активно учавствую в разделах форума, но меня посылают на пол года в Урюпинск. Приезжая тута, я бегу в интернет кафе, захожу на форум, ввожу логин, пароль и создаю тему - какой классный город Урюпинск, но как жаль что я тут на пол года. 3. Я, Эльдар Алебардович, очень хороший друг Леонида Горлохватайка. И я бы хотел оставить несколько замечаний на форуме, но, к сожалению не могу зарегестрироваться (как и Вася Пупкин). Тогда я звоню Леониду и прошу завести для себя пользователя форума. Леня, (будучи в локальной сети и не уехав в Урюпинск), заводит пользователя и сообщает логин, пароль Эльдару. Таким образом на форуме появляется еще один пользователь, которому можно доверять, и который не будет заниматся ерундой. Вроде как бы все учел. Огромная просьба помочь с данным вопросом. Возможно такой подход понадобится не только мне . Зарнее спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 21 Января 2009 Жалоба Поделиться Опубликовано 21 Января 2009 (изменено) /sources/action_public/register.php Найти (несколько раз): if ( $this->ipsclass->vars['no_reg'] == 1 ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'reg_off' ) ); } Добавить ПОСЛЕ: if ( strpos($this->ipsclass->ip_address, '192.168.') !== 0 ) { die('Регистрация с внешних IP запрещена!'); } Ну или такое: if ( strpos($this->ipsclass->ip_address, '192.168.') !== 0 ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'reg_off' ) ); } Будет стандартная ошибка "Регистрация отключена". Изменено 21 Января 2009 пользователем WildRAID Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 21 Января 2009 Жалоба Поделиться Опубликовано 21 Января 2009 !== falseпотому как в строке 192.168.86.11 оно как раз таки ==0 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 21 Января 2009 Жалоба Поделиться Опубликовано 21 Января 2009 (изменено) Не-не-не, не сбивайте меня. Всё ОК. Если IP адрес НЕ начинается с "192.168." - всё остановить и показать ошибку. Изменено 21 Января 2009 пользователем WildRAID Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 21 Января 2009 Жалоба Поделиться Опубликовано 21 Января 2009 я имею ввиду буквами писать false в строке с тремя равно / воскл.знаком и двумя рано а вообще регулярка решает Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 21 Января 2009 Жалоба Поделиться Опубликовано 21 Января 2009 По идее. === false - такой подстроки нету!== false - такая подстрока есть (в любой позиции) === 0 - такая подстрока есть + она в нулевой позиции!== 0 - такой подстроки либо нет, либо она не в нулевой позиции Если с false прописать, то пропустит IP адрес 198.192.168.86. Позицию надо смотреть. Либо я смертельно глючу уже. >__< Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
YAD Опубликовано 21 Января 2009 Автор Жалоба Поделиться Опубликовано 21 Января 2009 Благодарю за скорый ответ! Сегодня испытаю. Еще раз спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
YAD Опубликовано 22 Января 2009 Автор Жалоба Поделиться Опубликовано 22 Января 2009 Все очень красиво и аккуратно работает! Благодарность не имеет границ! Вот только возник вопрос, Вписывал код:if ( strpos($this->ipsclass->ip_address, '192.168.') !== 0 ) { die('Регистрация с внешних IP запрещена!'); }Можно ли вместо надписи использовать HTML или ссылку на страничку? При открытии регистрации с внешних IP просто открывает делую страницу и надпись в левом верхнем углу. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 22 Января 2009 Жалоба Поделиться Опубликовано 22 Января 2009 Впишите второй предложенный код. Да, можно использовать HTML. Можно даже сделатьdie(file_get_contents('путь/к/файлу/со/страницей.html')); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.