Если необходимо совместить возможности защиты административной части интерфейса Битрикса с возможностью входа в систему с динамического IP (к сожалению, не все провайдеры предоставляют статичный IP; ближайший пример - МГТС) ТО можно использовать, например, такой нехитрый код (мне лично надоело вручную через PHPМайАдмин всё это править):
Некоторые пояснения:
$DBLogin - имя БД из dbconn.php
$DBPasswordX - любой произвольный пароль, который Вы определяете также в dbconn.php
Соответственно, если ввести их правильно в оба окошка формы, то скрипт добавить Ваш динамический IP в таблицы Битрикса. И после этого можно авторизоваться в системе с Вашими логином и паролем.
$arExclIPs[0] - так, если Ваш IP первый (и единственный) в админке Битрикса.
Если он второй по счёту, то надо тут сделать так: $arExclIPs[1]
Если третий то так: $arExclIPs[2]
И т.п.
Если будут вопросы - спрашивайте.
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); include("/home/uxxx/xxx.ru/www/bitrix/php_interface/dbconn.php"); print $_SERVER['REMOTE_ADDR']; $rip = $_SERVER['REMOTE_ADDR']; $b_form=TRUE; if(isset($_POST['subm_go'])) { // Отправка $b_form=FALSE; if(($IP1 == $DBPasswordX) && ($IP2 == $DBLogin)) { print "error"; $var2 = $rip; $ip3 = ip2long($var2); //require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/security/include.php"); //require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/security/prolog.php"); $ID = 1; $arExclIPs = array(); $ar = CSecurityIPRule::GetRuleExclIPs($ID); foreach($ar as $i => $ip) { $arExclIPs[] = htmlspecialchars($ip); } $arExclIPs[0] = $rip; //var_dump($arExclIPs); $INCL_IPS = array("0.0.0.1-255.255.255.255"); $ob = new CSecurityIPRule; $ID = 1; $arFields = array( "RULE_TYPE" => "A", "ACTIVE" => "Y", "ADMIN_SECTION" => "Y", "SITE_ID" => false, "SORT" => 10, "NAME" => "Автоматическое правило защиты административной части", "ACTIVE_FROM" => false, "ACTIVE_TO" => false, "INCL_IPS" => $INCL_IPS, "EXCL_IPS" => $arExclIPs, "INCL_MASKS" => array("/bitrix/admin/*"), "EXCL_MASKS" => array(), ); $res = $ob->Update($ID, $arFields); $CACHE_MANAGER->CleanDir("b_sec_iprule"); } else { print "error"; } } if($b_form) { $out.='<form method="post"> <table><tr><td>Введите № IP и нажмите Отправить!</td> <td><input type="password" name="IP" value="'.$IP1.'" size="35"></td> <td><input type="password" name="IP2" value="'.$IP2.'" size="35"></td> </tr></table> <br><input type="Submit" name="subm_go" value="Отправить"> </form>'; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <h3>Test IP:</h3> <?=$out?> </body> </html> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?> |
Некоторые пояснения:
$DBLogin - имя БД из dbconn.php
$DBPasswordX - любой произвольный пароль, который Вы определяете также в dbconn.php
Соответственно, если ввести их правильно в оба окошка формы, то скрипт добавить Ваш динамический IP в таблицы Битрикса. И после этого можно авторизоваться в системе с Вашими логином и паролем.
$arExclIPs[0] - так, если Ваш IP первый (и единственный) в админке Битрикса.
Если он второй по счёту, то надо тут сделать так: $arExclIPs[1]
Если третий то так: $arExclIPs[2]
И т.п.
Если будут вопросы - спрашивайте.