Задача: ограничение доступа с определенных IP в форму регистрации пользователя.
Установка:
Код: Выделить всё
#
#-----[ OPEN ]------------------------------------------
#
ucp.php
#
#-----[ FIND ]------------------------------------------
#
if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
{
redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
}
#
#-----[ BEFORE, ADD ]-----------------------------------
#
$allow_ips_mod = array('193.30.0.0/16', '192.168.0.0/16', '10.0.0.0/8');
if ($allow_ips_mod)
{
$allow_ips_mod_ip = ip2long($_SERVER['REMOTE_ADDR']);
$allow_ips_j = count($allow_ips_mod);
for ($allow_ips_i = 0; $allow_ips_i <= $allow_ips_j; $allow_ips_i++)
{
if ($allow_ips_i == $allow_ips_j)
redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
$allow_ip = explode('/', $allow_ips_mod[$allow_ips_i]);
if ($allow_ip[1] > 32 || $allow_ip[1] < 0)
continue;
$allow_ip[1] = 32 - $allow_ip[1];
if ((ip2long($allow_ip[0]) >> $allow_ip[1]) == ($allow_ips_mod_ip >> $allow_ip[1]))
break;
}
}
Этот "мод" требует понимания записи IP-адресов в формате CIDR и немного знаний о массивах PHP. Его можно легко переделать под ограничения доступа подобным образом на любую страницу (перенести в самое начало и добавить парсинг запрашиваемого URL`а).
Как внести в админку данный мод, я не знаю.
Буду рад, если кому-нть сие пригодится.

