Tul xxx Tul
User / IP
:
216.73.216.217
Host / Server
:
45.84.207.204 / aircan.me
System
:
Linux lt-bnk-web1726.main-hosting.eu 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
u931257429
/
domains
/
aircan.me
/
public_html
/
ventas
/
app
/
Models
/
Viewing: DispositivoRegistrado.php
<?php /** * ============================================================================ * LC DESIGN - Sistema de Gestión Empresarial * ============================================================================ * * @copyright 2024-2025 LC Design. Todos los derechos reservados. * @license Propietario - Uso exclusivo bajo licencia * ============================================================================ */ namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; class DispositivoRegistrado extends Model { protected $table = 'dispositivos_registrados'; protected $fillable = [ 'user_id', 'nombre_dispositivo', 'tipo_dispositivo', 'sistema_operativo', 'navegador', 'fingerprint', 'ip_address', 'user_agent', 'activo', 'ultimo_acceso', 'datos_adicionales', ]; protected $casts = [ 'activo' => 'boolean', 'ultimo_acceso' => 'datetime', 'datos_adicionales' => 'array', ]; public function user(): BelongsTo { return $this->belongsTo(User::class); } /** * Generar fingerprint del dispositivo basado en información del navegador */ public static function generarFingerprint(array $info): string { $data = implode('|', [ $info['user_agent'] ?? '', $info['screen_width'] ?? '', $info['screen_height'] ?? '', $info['timezone'] ?? '', $info['language'] ?? '', $info['platform'] ?? '', ]); return hash('sha256', $data . 'LC_DEVICE_SALT_2024'); } /** * Registrar o actualizar dispositivo */ public static function registrarDispositivo(int $userId, array $info): self { $fingerprint = self::generarFingerprint($info); $dispositivo = self::updateOrCreate( [ 'user_id' => $userId, 'fingerprint' => $fingerprint, ], [ 'nombre_dispositivo' => $info['nombre'] ?? self::detectarNombreDispositivo($info), 'tipo_dispositivo' => self::detectarTipoDispositivo($info['user_agent'] ?? ''), 'sistema_operativo' => self::detectarSO($info['user_agent'] ?? ''), 'navegador' => self::detectarNavegador($info['user_agent'] ?? ''), 'ip_address' => $info['ip'] ?? request()->ip(), 'user_agent' => $info['user_agent'] ?? request()->userAgent(), 'ultimo_acceso' => now(), 'datos_adicionales' => [ 'screen' => ($info['screen_width'] ?? '?') . 'x' . ($info['screen_height'] ?? '?'), 'timezone' => $info['timezone'] ?? null, 'language' => $info['language'] ?? null, ], ] ); return $dispositivo; } /** * Detectar nombre del dispositivo */ protected static function detectarNombreDispositivo(array $info): string { $ua = $info['user_agent'] ?? ''; // Detectar dispositivos específicos if (preg_match('/iPhone/', $ua)) return 'iPhone'; if (preg_match('/iPad/', $ua)) return 'iPad'; if (preg_match('/SM-[A-Z0-9]+/', $ua, $m)) return 'Samsung ' . $m[0]; if (preg_match('/Pixel/', $ua)) return 'Google Pixel'; if (preg_match('/HUAWEI|Honor/', $ua)) return 'Huawei'; if (preg_match('/Xiaomi|Redmi|POCO/', $ua)) return 'Xiaomi'; if (preg_match('/Android/', $ua)) return 'Dispositivo Android'; if (preg_match('/Windows/', $ua)) return 'PC Windows'; if (preg_match('/Macintosh/', $ua)) return 'Mac'; if (preg_match('/Linux/', $ua)) return 'PC Linux'; return 'Dispositivo desconocido'; } /** * Detectar tipo de dispositivo */ protected static function detectarTipoDispositivo(string $userAgent): string { if (preg_match('/Mobile|Android.*Mobile|iPhone|iPod/', $userAgent)) { return 'movil'; } if (preg_match('/iPad|Android(?!.*Mobile)|Tablet/', $userAgent)) { return 'tablet'; } return 'escritorio'; } /** * Detectar sistema operativo */ protected static function detectarSO(string $userAgent): string { if (preg_match('/Windows NT 10/', $userAgent)) return 'Windows 10/11'; if (preg_match('/Windows/', $userAgent)) return 'Windows'; if (preg_match('/Android ([0-9.]+)/', $userAgent, $m)) return 'Android ' . $m[1]; if (preg_match('/iPhone OS ([0-9_]+)/', $userAgent, $m)) return 'iOS ' . str_replace('_', '.', $m[1]); if (preg_match('/Mac OS X/', $userAgent)) return 'macOS'; if (preg_match('/Linux/', $userAgent)) return 'Linux'; return 'Desconocido'; } /** * Detectar navegador */ protected static function detectarNavegador(string $userAgent): string { if (preg_match('/Chrome\/([0-9.]+)/', $userAgent, $m)) return 'Chrome ' . explode('.', $m[1])[0]; if (preg_match('/Firefox\/([0-9.]+)/', $userAgent, $m)) return 'Firefox ' . explode('.', $m[1])[0]; if (preg_match('/Safari\/([0-9.]+)/', $userAgent) && !preg_match('/Chrome/', $userAgent)) return 'Safari'; if (preg_match('/Edge\/([0-9.]+)/', $userAgent, $m)) return 'Edge ' . explode('.', $m[1])[0]; if (preg_match('/MSIE|Trident/', $userAgent)) return 'Internet Explorer'; return 'Desconocido'; } /** * Obtener dispositivos activos del usuario */ public static function dispositivosActivos(int $userId) { return self::where('user_id', $userId) ->where('activo', true) ->orderBy('ultimo_acceso', 'desc') ->get(); } /** * Desactivar dispositivo */ public function desactivar(): bool { return $this->update(['activo' => false]); } }
Coded With 💗 by
0x6ick