<?php
// get_mac.php - VERSÃO QUE SEMPRE RETORNA HEX E ACEITA TESTES
date_default_timezone_set('America/Sao_Paulo');

// Permitir acesso de teste (remova depois)
$user_agent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$is_simple_ping = strpos($user_agent, 'IBO-Ping-') !== false || 
                  strpos($user_agent, 'SimplePing') !== false ||
                  strpos($user_agent, 'Mozilla') !== false; // Permitir browser para teste

if (!$is_simple_ping) {
    echo "ACCESS_DENIED";
    exit;
}

// Caminho do banco
$db_path = __DIR__ . '/.eggziedb.db';

if (!file_exists($db_path)) {
    echo "NO_DB";
    exit;
}

try {
    $db = new SQLite3($db_path);
    
    // Log da requisição
    file_put_contents('get_mac_access.log', 
        date('Y-m-d H:i:s') . " | IP: " . ($_SERVER['REMOTE_ADDR'] ?? '') . 
        " | UA: " . $user_agent . "\n", 
        FILE_APPEND
    );
    
    // Buscar TODOS os MACs da tabela ibo
    $query = $db->query("
        SELECT mac_address 
        FROM ibo 
        WHERE mac_address IS NOT NULL 
        AND mac_address != ''
        ORDER BY id DESC
    ");
    
    $macs = [];
    while ($row = $query->fetchArray(SQLITE3_ASSOC)) {
        $mac = trim($row['mac_address']);
        if (!empty($mac)) {
            // Converter para HEX limpo (remover : e uppercase)
            $hex = strtoupper(str_replace(':', '', $mac));
            
            // Garantir que é hex válido
            if (ctype_xdigit($hex) && (strlen($hex) == 12 || strlen($hex) == 16)) {
                $macs[] = $hex;
            }
        }
    }
    
    $db->close();
    
    if (empty($macs)) {
        echo "NO_MAC_FOUND";
        exit;
    }
    
    // Se tiver múltiplos, pegar o mais recente (último id)
    $selected_mac = $macs[0];
    
    // Log do que está sendo retornado
    file_put_contents('get_mac_return.log', 
        date('Y-m-d H:i:s') . " | Returning: $selected_mac | All: " . implode(',', $macs) . "\n", 
        FILE_APPEND
    );
    
    // ✅ SEMPRE retornar HEX!
    echo "MAC:" . $selected_mac;
    
} catch (Exception $e) {
    echo "ERROR:" . $e->getMessage();
    
    file_put_contents('get_mac_error.log', 
        date('Y-m-d H:i:s') . " | " . $e->getMessage() . "\n", 
        FILE_APPEND
    );
}
?>