本文整理汇总了PHP中IP::get_ip_addr方法的典型用法代码示例。如果您正苦于以下问题:PHP IP::get_ip_addr方法的具体用法?PHP IP::get_ip_addr怎么用?PHP IP::get_ip_addr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IP
的用法示例。
在下文中一共展示了IP::get_ip_addr方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: login
/**
* Iniciamos sessión con un usuario.
* @param string $mail E-Mail
* @param string $password Contraseña
* @return int Estado de la cuenta. -1 Si los datos son inválidos.
*/
public function login($mail, $password)
{
$rst = $this->db->query('SELECT id, nick, password, email, estado FROM usuario WHERE email = ? OR nick = ? LIMIT 1', array($mail, $mail));
// Verificamos que exista el usuario.
if ($rst->num_rows() > 0) {
// Obtenemos la información.
$data = $rst->get_record(Database_Query::FETCH_ASSOC, array('id' => Database_Query::FIELD_INT, 'estado' => Database_Query::FIELD_INT));
// Verificamos la contraseña.
$enc = new Phpass(8, FALSE);
if (!$enc->check_password($password, $data['password']) == TRUE) {
return -1;
}
// Verificamos el estado.
switch ($data['estado']) {
case self::ESTADO_SUSPENDIDA:
// Cuenta suspendida.
$this->primary_key['id'] = $data['id'];
$suspension = $this->suspension();
if ($suspension === NULL) {
$this->actualizar_estado(self::ESTADO_ACTIVA);
$data['estado'] = self::ESTADO_ACTIVA;
} else {
// Verificamos si terminó.
if ($suspension->restante() <= 0) {
$suspension->anular();
$this->actualizar_estado(self::ESTADO_ACTIVA);
$data['estado'] = self::ESTADO_ACTIVA;
} else {
break;
}
}
case self::ESTADO_BANEADA:
// Cuenta baneada.
// Verificamos por paso de suspendida.
if ($data['estado'] == self::ESTADO_BANEADA) {
$this->primary_key['id'] = $data['id'];
if ($this->baneo() === NULL) {
$this->actualizar_estado(self::ESTADO_ACTIVA);
$data['estado'] = self::ESTADO_ACTIVA;
}
break;
}
case self::ESTADO_ACTIVA:
// Cuenta activa.
// IP del usuario.
$ip = ip2long(IP::get_ip_addr());
// Seteamos el usuario actual.
$this->primary_key['id'] = $data['id'];
// Iniciamos la sessión.
Usuario::login($this, $ip);
// Actualizamos el inicio de session.
$this->db->update('UPDATE usuario SET lastlogin = ?, lastactive = ?, lastip = ? WHERE id = ?', array(date('Y/m/d H:i:s'), date('Y/m/d H:i:s'), $ip, $this->primary_key['id']));
break;
case self::ESTADO_PENDIENTE:
// Cuenta por activar.
break;
default:
throw new Exception("El estado del usuario {$data['id']} es {$data['estado']} y no se puede manejar.");
}
// Informamos el estado.
return $data['estado'];
} else {
// No existe el usuario.
return -1;
}
}
示例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());
}
示例3: extension_loaded
// Verifico MCrypt.
extension_loaded('mcrypt') || die('Marifa necesita MCrypt para funcionar.');
// Inicio logs.
Log::setup(APP_BASE . DS . 'log', '%d-%m-%Y.log', PRODUCTION ? Log::INFO : Log::DEBUG);
// Iniciamos las cookies.
Cookie::start('secret_cookie_key');
// Iniciamos el usuario.
Usuario::start();
// Cargo el tema actual.
define('THEME', Theme::actual());
// Iniciamos el manejo de errores.
Error::get_instance()->start(DEBUG);
// Verificamos bloqueos.
$lock = new Mantenimiento();
if ($lock->is_locked()) {
if ($lock->is_locked_for(IP::get_ip_addr())) {
//TODO: utilizar vista para dar flexibilidad.
die("Modo mantenimiento activado.");
}
}
// Definimos el directorio temporal. Puede definir uno manualmente.
define('TMP_PATH', Update_Utils::sys_get_temp_dir() . DS);
// Comprobamos que exista la configuración de la base de datos.
if (!file_exists(CONFIG_PATH . DS . 'database.php')) {
//TODO: lo mandamos al instalador.
die("Falta configurar la base de datos");
}
// Cargamos la cache.
Cache::get_instance();
// Cargamos las configuraciones del gestor de actualizaciones.
if (file_exists(CONFIG_PATH . DS . 'update.php')) {