当前位置: 首页>>代码示例>>PHP>>正文


PHP IP::ip_in_range方法代码示例

本文整理汇总了PHP中IP::ip_in_range方法的典型用法代码示例。如果您正苦于以下问题:PHP IP::ip_in_range方法的具体用法?PHP IP::ip_in_range怎么用?PHP IP::ip_in_range使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IP的用法示例。


在下文中一共展示了IP::ip_in_range方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: is_locked_for

 /**
  * Verificamos si el bloqueo aplica al IP provisto.
  * @param string $ip
  * @return bool
  */
 public function is_locked_for($ip)
 {
     if (!$this->is_locked()) {
         return FALSE;
     }
     // Cargamos los rangos.
     $range_list = file($this->lock_file);
     // Verificamos.
     foreach ($range_list as $range) {
         if ($ip == $range || IP::ip_in_range($ip, $range)) {
             // Existe en el rango.
             return FALSE;
         }
     }
     // No existe en los rangos.
     return TRUE;
 }
开发者ID:4bs4,项目名称:marifa,代码行数:22,代码来源:mantenimiento.php

示例2: action_mantenimiento

 /**
  * Configuración del modo mantenimiento.
  */
 public function action_mantenimiento()
 {
     // Cargamos la vista.
     $vista = View::factory('admin/configuracion/mantenimiento');
     // Cargo manejador del modo mantenimiento.
     $mantenimiento = new Mantenimiento();
     // Cargo listado de IP's que pueden acceder en modo mantenimiento.
     $model_configuracion = new Model_Configuracion();
     $ips_matenimiento = unserialize($model_configuracion->get('ip_mantenimiento', 'a:0:{}'));
     // Pasamos los datos a la vista.
     $vista->assign('ip', implode(PHP_EOL, $ips_matenimiento));
     $vista->assign('error_ip', FALSE);
     $vista->assign('success_ip', FALSE);
     if (Request::method() == 'POST') {
         // Obtengo el listado de IP's.
         $ips = isset($_POST['ip']) ? explode(PHP_EOL, trim($_POST['ip'])) : array();
         // Verifico cada uno de los IP's.
         $error = FALSE;
         foreach ($ips as $k => $ip) {
             $ip = trim($ip);
             $ips[$k] = $ip;
             // Verifico IP.
             if ($ip == long2ip(ip2long($ip))) {
                 continue;
             }
             // Verifico rango del tipo a.b.c.d-a.b.c.d
             if (strpos($ip, '-')) {
                 list($a, $b) = explode('-', $ip);
                 if ($a != long2ip(ip2long($a)) || $b != long2ip(ip2long($b))) {
                     $error = TRUE;
                     break;
                 } else {
                     continue;
                 }
             }
             $error = TRUE;
             break;
             //TODO: agregar soporte a rangos faltantes (CIFS /netmask,  *).
         }
         // Asigno valor a la vista.
         $vista->assign('ip', implode(PHP_EOL, $ips));
         if ($error) {
             $vista->assign('error_ip', 'Los IP\'s ingresados no son válidos.');
         } else {
             // Verifico si hay cambios.
             if (count(array_diff($ips, $ips_matenimiento)) > 0) {
                 // Actualizo los valores.
                 $model_configuracion->ip_mantenimiento = serialize($ips);
                 $ips_matenimiento = $ips;
                 // Actualizo si es necesario.
                 if ($mantenimiento->is_locked()) {
                     $mantenimiento->lock($ips);
                 }
                 // Informo resultado.
                 $vista->assign('success_ip', 'Listado de IP\'s actualizada correctamente.');
             }
         }
     }
     // Verifico si está habilitado el bloqueo.
     $vista->assign('is_locked', $mantenimiento->is_locked());
     if ($mantenimiento->is_locked()) {
         $locked_for_me = $mantenimiento->is_locked_for(IP::get_ip_addr());
     } else {
         $locked_for_me = TRUE;
         $my_ip = IP::get_ip_addr();
         foreach ($ips_matenimiento as $ip) {
             if ($my_ip == $ip || IP::ip_in_range($my_ip, $ip)) {
                 $locked_for_me = FALSE;
                 break;
             }
         }
         unset($my_ip);
     }
     $vista->assign('is_locked_for_me', $locked_for_me);
     unset($locked_for_me);
     // Seteamos el menu.
     $this->template->assign('master_bar', parent::base_menu('admin'));
     // Cargamos plantilla administracion.
     $admin_template = View::factory('admin/template');
     $admin_template->assign('contenido', $vista->parse());
     unset($portada);
     $admin_template->assign('top_bar', Controller_Admin_Home::submenu('configuracion_mantenimiento'));
     // Asignamos la vista a la plantilla base.
     $this->template->assign('contenido', $admin_template->parse());
 }
开发者ID:4bs4,项目名称:marifa,代码行数:88,代码来源:configuracion.php


注:本文中的IP::ip_in_range方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。