• Модуль: security
  • Путь к файлу: ~/bitrix/modules/security/classes/general/iprule.php
  • Класс: CSecurityIPRule
  • Вызов: CSecurityIPRule::UpdateRuleIPs
function UpdateRuleIPs($IPRULE_ID, $arInclIPs=false, $arExclIPs=false)
{
	global $DB, $CACHE_MANAGER;
	$IPRULE_ID = intval($IPRULE_ID);
	if(!$IPRULE_ID)
		return false;

	if(is_array($arInclIPs))
	{
		$res = $DB->Query("DELETE FROM b_sec_iprule_incl_ip WHERE IPRULE_ID = ".$IPRULE_ID, false, "File: ".__FILE__."
Line: ".__LINE__); if($res) { $added = array(); $i = 10; foreach($arInclIPs as $ip) { $ip = preg_replace("/[\s]/".BX_UTF_PCRE_MODIFIER, "", $ip); if($ip && !array_key_exists($ip, $added)) { $ar = explode("-", $ip); $ip1 = self::ip2number($ar[0]); $ip2 = isset($ar[1]) ? self::ip2number($ar[1]) : 0; if($ip2 <= 0) $ip2 = $ip1; $arIP = array( "ID" => 1, "IPRULE_ID" => $IPRULE_ID, "RULE_IP" => $ip, "SORT" => $i, "~IP_START" => $ip1, "~IP_END" => $ip2, ); $DB->Add("b_sec_iprule_incl_ip", $arIP); $i += 10; $added[$ip] = true; } } if(CACHED_b_sec_iprule !== false) $CACHE_MANAGER->CleanDir("b_sec_iprule"); } } if(is_array($arExclIPs)) { $res = $DB->Query("DELETE FROM b_sec_iprule_excl_ip WHERE IPRULE_ID = ".$IPRULE_ID, false, "File: ".__FILE__."
Line: ".__LINE__); if($res) { $added = array(); $i = 10; foreach($arExclIPs as $ip) { $ip = preg_replace("/[\s]/".BX_UTF_PCRE_MODIFIER, "", $ip); if($ip && !array_key_exists($ip, $added)) { $ar = explode("-", $ip); $ip1 = self::ip2number($ar[0]); $ip2 = isset($ar[1]) ? self::ip2number($ar[1]) : 0; if($ip2 <= 0) $ip2 = $ip1; $arIP = array( "ID" => 1, "IPRULE_ID" => $IPRULE_ID, "RULE_IP" => $ip, "SORT" => $i, "~IP_START" => $ip1, "~IP_END" => $ip2, ); $DB->Add("b_sec_iprule_excl_ip", $arIP); $i += 10; $added[$ip] = true; } } if(CACHED_b_sec_iprule !== false) $CACHE_MANAGER->CleanDir("b_sec_iprule"); } } return true; }