HEX
Server: Apache
System: Linux webm004.cluster129.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: windevelwb (110072)
PHP: 8.5.0
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/windevelwb/www/api2/Macphp.php
<?php
// inject_macs_inplace.php
$baseDir    = __DIR__;
$inputFile  = $baseDir . '/output/listes.txt';
$targetFile = $baseDir . '/liste.php';
$backupFile = $baseDir . '/liste.php.bak.' . time();

// 1) vérifications
if (!file_exists($inputFile)) {
    echo "ERREUR: fichier d'entrée introuvable : $inputFile\n";
    exit(1);
}
if (!file_exists($targetFile)) {
    echo "ERREUR: fichier cible introuvable : $targetFile\n";
    exit(1);
}

// 2) lire et nettoyer les adresses MAC
$lines = file($inputFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$macs = array();
foreach ($lines as $raw) {
    $clean = trim($raw);
    $clean = trim($clean, " \t\n\r'\",;"); // supprime quotes/virgules/points-virgules
    if ($clean === '') continue;
    $macs[] = strtoupper($clean);
}
if (count($macs) === 0) {
    echo "Aucune adresse MAC trouvée dans $inputFile\n";
    exit(1);
}

// 3) sauvegarde du fichier existant
if (!copy($targetFile, $backupFile)) {
    echo "ERREUR: impossible de créer la sauvegarde $backupFile\n";
    exit(1);
}
echo "Sauvegarde créée : $backupFile\n";

// 4) lire le contenu cible
$content = file_get_contents($targetFile);
if ($content === false) {
    echo "ERREUR: impossible de lire $targetFile\n";
    exit(1);
}

// 5) construire le bloc $AdresseMac
$macBlock = "\n// Liste des adresses MAC ajoutée automatiquement\n\$AdresseMac = array(\n";
foreach ($macs as $m) {
    $macBlock .= "    '" . $m . "',\n";
}
$macBlock .= ");\n\n";

// 6) remplacer un bloc existant $AdresseMac = array(...) s'il existe
$pattern = '/\$AdresseMac\s*=\s*array\s*\(\s*(?:[^\)]*)\)\s*;\s*/is';
if (preg_match($pattern, $content)) {
    $newContent = preg_replace($pattern, $macBlock, $content, 1);
    echo "Bloc \$AdresseMac existant remplacé.\n";
} else {
    // 7) insérer avant echo json_encode($result); si présent
    $needle = 'echo json_encode($result);';
    if (strpos($content, $needle) !== false) {
        $newContent = str_replace($needle, $macBlock . $needle, $content);
        echo "Bloc \$AdresseMac inséré avant echo json_encode(\$result).\n";
    } else {
        // sinon, ajouter à la fin du fichier
        $newContent = $content . "\n" . $macBlock;
        echo "echo json_encode(\$result) non trouvé. Bloc \$AdresseMac ajouté en fin de fichier.\n";
    }
}

// 8) écrire en place (écrase le fichier cible)
if (file_put_contents($targetFile, $newContent) === false) {
    echo "ERREUR: impossible d'écrire dans $targetFile\n";
    // tenter de restaurer la sauvegarde
    if (file_exists($backupFile)) {
        copy($backupFile, $targetFile);
        echo "Restauration automatique depuis la sauvegarde effectuée.\n";
    }
    exit(1);
}

echo "Injection terminée : $targetFile mis à jour.\n";
echo "Adresses MAC ajoutées : " . count($macs) . "\n";
echo "Si tout est OK, supprime la sauvegarde manuellement si tu le souhaites : $backupFile\n";