本文整理汇总了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;
}
示例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());
}