Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Laberthread zu iptv listen 2

Also ich werde wie ich schon gesagt habe, mir definitiv keine Mehrarbeit machen, weil Person A es so will, Person B es so will, Person C es so will. Wer etwas sich selbst sortieren/filtern will, kann das tun, ich werde bei meinem Format bleiben. Wie undankbar will man denn hier noch sein, dass man jetzt sogar auch noch ein bestimmtes Format verlangt, anstatt sich zu bedanken und sich zu freuen.
Mit dem heutigen Tag, werde ich auf unbestimmte Zeit nun auch das Posten von Listen einstellen, wird mir zu undankbar langsam.
 
Hoffe das lag nicht an meinen Post, ich bekomme alles selber gefiltert. Das bezog sich eher auf alle möglichen Ergebnisse die die unterschiedlichsten scanner auswerfen.

Und Fordern werde ich mit Sicherheit nie etwas, das baue ich wenn dann selbst
 
Zuletzt bearbeitet:
An Shazgul seiner stelle würde ich mir das gelabber (wie er die listen hier einstellen soll)nicht mehr länger anhören!
Er macht sich echt so viel mühe jeden hier zu befriedigen.
Ich selber brauche keine liste von ihm,aber was er sich für eine mühe hier gibt für die Newbies.
Ich würde euch empfehlen nicht so zu trommeln.

Grüße staffco
 
Also ich werde wie ich schon gesagt habe, mir definitiv keine Mehrarbeit machen, weil Person A es so will, Person B es so will, Person C es so will. Wer etwas sich selbst sortieren/filtern will, kann das tun, ich werde bei meinem Format bleiben. Wie undankbar will man denn hier noch sein, dass man jetzt sogar auch noch ein bestimmtes Format verlangt, anstatt sich zu bedanken und sich zu freuen.
Mit dem heutigen Tag, werde ich auf unbestimmte Zeit nun auch das Posten von Listen einstellen, wird mir zu undankbar langsam.
schade, dass DU es nicht verstanden hast, was im kern genau gemeint ist""" °!*
es hat weder etwas mit ""DANKBAR" am toch, weder mit deinen scann-künsten mit den lollies

auch möchte keiner von DIR eine Mehrarbeit, weil es A-B-C oder F soo möchte,
oder doch oder auch nicht!?
Mmmhh...
bitte, lese einmal genau, was geschrieben wurde und was gemeint ist.
und selbstverständlich kannst du gerne bei deinem format bleiben,
alles gut!!!
es wäre trotzdem nicht dumm,
wenn man das thema auch mal aus unterschiedlichen sichtweisen betrachten würde! ***** 5sterne!!!!
alles liebe
und nen sonnigen gruß!!!
 
Zuletzt bearbeitet:
Off Topic Beiträge wurden entfernt - der Rest läuft im Hintergrund! Vertragt euch bitte alle zusammen. Wir möchten wirklich sehr ungern Verwarnungen aussprechen!
Wir sind doch alle erwachsen - also nocheinmal die Bitte: Habt euch lieb!
 
Hier:
(ungetestetet und auf die Schnelle)

(aus Portals "geklaut" ;)
Da ist es dann nur mit Copy&Paste zu erledigen. Ohne Terminal)

Usage: php conv.php <scanfile.txt> <output_base>
Example: php conv.php ./scan/scan_123.txt ./scan/done/example

PHP:
<?php
declare(strict_types=1);

ini_set('memory_limit', '350M');

if ($argc < 3) {
    fwrite(STDERR, "Usage: php conv.php <scanfile.txt> <output_base>\n");
    fwrite(STDERR, "Example: php conv.php ./scan/scan_123.txt ./scan/done/example\n");
    exit(1);
}

$inputFile  = $argv[1];
$outputBase = $argv[2];

if (!file_exists($inputFile)) {
    fwrite(STDERR, "File not found: $inputFile\n");
    exit(1);
}

$outputDir = dirname($outputBase);
if (!is_dir($outputDir)) {
    mkdir($outputDir, 0755, true);
}

function loadExistingFileData(string $filePath): array {
    $existingUrls = [];
    $existingMacs = [];
    $existingUserPass = [];

    if (file_exists($filePath)) {
        $fileContent = file_get_contents($filePath);

        preg_match_all('/http:\/\/([a-zA-Z0-9.-]+)(:\d+)?/', $fileContent, $existingUrls);
        $existingUrls = isset($existingUrls[0]) ? array_unique($existingUrls[0]) : [];

        preg_match_all('/[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}/', $fileContent, $existingMacs);
        $existingMacs = isset($existingMacs[0]) ? array_unique($existingMacs[0]) : [];

        preg_match_all('/get\.php\?username=([a-zA-Z0-9._]+)&password=([a-zA-Z0-9._]+)/', $fileContent, $existingUserPass);
        $existingUserPass = (isset($existingUserPass[1], $existingUserPass[2]))
            ? array_map(fn($u, $p) => "$u/$p", $existingUserPass[1], $existingUserPass[2])
            : [];
    }

    return [
        'urls'     => $existingUrls,
        'macs'     => $existingMacs,
        'userpass' => $existingUserPass,
    ];
}

$inputData = file_get_contents($inputFile);

preg_match_all('/http:\/\/([a-zA-Z0-9.-]+)(:\d+)?/', $inputData, $urls);
preg_match_all('/[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}/', $inputData, $macs);
preg_match_all('/get\.php\?username=([a-zA-Z0-9._]+)&password=([a-zA-Z0-9._]+)/', $inputData, $userPass);

$outputMacFile = $outputBase . '_mac.txt';
$outputUpFile  = $outputBase . '_up.txt';

if (!empty($urls[0])) {
    $portalUrl = $urls[0][0];
    $existingData       = loadExistingFileData($outputMacFile);
    $existingUrls       = $existingData['urls'];
    $existingMacs       = $existingData['macs'];
    $existingUserPass   = loadExistingFileData($outputUpFile)['userpass'];

    $newMacs = array_unique(array_diff($macs[0], $existingMacs));
    $newUserPassCombos = array_map(fn($u, $p) => "$u/$p", $userPass[1], $userPass[2]);
    $newUserPassCombos = array_unique(array_diff($newUserPassCombos, $existingUserPass));

    if (!file_exists($outputMacFile) || strpos(file_get_contents($outputMacFile), $portalUrl) === false) {
        file_put_contents($outputMacFile, $portalUrl . PHP_EOL, FILE_APPEND);
    }
    if (!empty($newMacs)) {
        $macFileHandle = fopen($outputMacFile, 'a');
        foreach ($newMacs as $mac) {
            fwrite($macFileHandle, "$mac\n");
        }
        fclose($macFileHandle);
        chmod($outputMacFile, 0755);
        echo "MACs saved to $outputMacFile\n";
    }

    if (!file_exists($outputUpFile) || strpos(file_get_contents($outputUpFile), $portalUrl) === false) {
        file_put_contents($outputUpFile, $portalUrl . PHP_EOL, FILE_APPEND);
    }
    if (!empty($newUserPassCombos)) {
        $upFileHandle = fopen($outputUpFile, 'a');
        foreach ($newUserPassCombos as $combo) {
            fwrite($upFileHandle, "$combo\n");
        }
        fclose($upFileHandle);
        chmod($outputUpFile, 0755);
        echo "User/Pass combos saved to $outputUpFile\n";
    }

    if (empty($newMacs) && empty($newUserPassCombos)) {
        echo "Nothing new to add. Files are already up-to-date.\n";
    }
} else {
    echo "No valid portal URLs found in scan file.\n";
}

Ergibt dann:

fancy txt Mac Liste rein --> txt mit Portalname und alle Macs darunter.
So auch für User/path

eigentlich ganze einfach - alle daten liegen in scan auch die txt...er meldet trotzdem, dass er die nicht findet.
Du musst Regestriert sein, um das angehängte Bild zusehen.


Du musst Regestriert sein, um das angehängte Bild zusehen.



ok verstanden . in scan muss nochmal der ordner scan rein. dachte es reicht nur im root verzeichnis.
somit erleidigt
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
Für deine Ordnerstruktur muss es so gestartet werden

php conv.php scan_123.txt ./done

Der Punkt vor dem Slash bedeutet immer:
Starte vom aktuellen Verzeichnis aus.
./scan/scan_123.txt gibt es da aber nicht, da du dort nur den Unterordner done hast.
 
Zuletzt bearbeitet:
perfekt erklärt und funktioniert.
jetzt muss ich nur noch hits in einzellisten speichern. macattack z.b. speichert die hits immer linear runter - trotz mehrerer anbieter.
aber so ist das eine mega erleichterung
 
Script kann natürlich auch darauf angepasst werden. Da aber meist nur ein Anbieter in der Ausgangsdatei ist, lasse ich das erstmal so.
 
alles gut danke ich selbst kann das leider nicht und ob das sonst noch jemand nutzen würde - salidos wie immer danke
 
wann nur ne frage der zeit bis es so kam, bei allen themen die bisher einen mehrheitlichen nutzen hatten kamen paar versprengte aus der versenkung und haben das ganze kaputt gemacht - da gibt es unzählige threads. wenns nach mir geht spar dir die zeit und stelle es ein
 
@Badly

PHP:
<?php
declare(strict_types=1);

ini_set('memory_limit', '350M');

if ($argc < 3) {
    fwrite(STDERR, "Usage: php process_scans_cli.php <scanfile.txt> <output_dir>\n");
    exit(1);
}

$inputFile  = $argv[1];
$outputDir  = rtrim($argv[2], '/');

if (!file_exists($inputFile)) {
    fwrite(STDERR, "File not found: $inputFile\n");
    exit(1);
}

if (!is_dir($outputDir)) {
    mkdir($outputDir, 0755, true);
}

function loadExistingFileData(string $filePath): array {
    $existingUrls = [];
    $existingMacs = [];
    $existingUserPass = [];
    if (file_exists($filePath)) {
        $fileContent = file_get_contents($filePath);
        preg_match_all('/http:\/\/([a-zA-Z0-9.-]+)(:\d+)?/', $fileContent, $existingUrls);
        $existingUrls = $existingUrls[0] ?? [];
        preg_match_all('/[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}/', $fileContent, $existingMacs);
        $existingMacs = $existingMacs[0] ?? [];
        preg_match_all('/([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+)/', $fileContent, $existingUserPass);
        $existingUserPass = (isset($existingUserPass[1], $existingUserPass[2]))
            ? array_map(fn($u, $p) => "$u/$p", $existingUserPass[1], $existingUserPass[2])
            : [];
    }
    return [
        'urls'     => array_unique($existingUrls),
        'macs'     => array_unique($existingMacs),
        'userpass' => array_unique($existingUserPass),
    ];
}

$lines = file($inputFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$currentPortal = null;
$portalBlocks = [];

foreach ($lines as $line) {
    $line = trim($line);
    if ($line === '') continue;
    if (preg_match('/^http:\/\/[a-zA-Z0-9.-]+(:\d+)?\/?$/', $line)) {
        $currentPortal = $line;
        if (!isset($portalBlocks[$currentPortal])) {
            $portalBlocks[$currentPortal] = ['macs' => [], 'userpass' => []];
        }
    } elseif ($currentPortal !== null) {
        if (preg_match('/^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$/', $line)) {
            $portalBlocks[$currentPortal]['macs'][] = strtoupper($line);
        } elseif (preg_match('/get\.php\?username=([a-zA-Z0-9._-]+)&password=([a-zA-Z0-9._-]+)/', $line, $m)) {
            $portalBlocks[$currentPortal]['userpass'][] = $m[1] . '/' . $m[2];
        }
    }
}

foreach ($portalBlocks as $portalUrl => $data) {
    $host = parse_url($portalUrl, PHP_URL_HOST);
    $port = parse_url($portalUrl, PHP_URL_PORT);
    if (!$host) continue;
    $baseName = preg_replace('/[^a-zA-Z0-9]+/', '_', $host);
    if ($port !== null && $port != 80) {
        $baseName .= '_' . $port;
    }
    $macFile  = $outputDir . '/' . $baseName . '_mac.txt';
    $upFile   = $outputDir . '/' . $baseName . '_up.txt';

    $existing = loadExistingFileData($macFile);
    if (!in_array($portalUrl, $existing['urls'])) {
        file_put_contents($macFile, $portalUrl . PHP_EOL, FILE_APPEND);
    }
    $newMacs = array_diff($data['macs'], $existing['macs']);
    if (!empty($newMacs)) {
        file_put_contents($macFile, implode(PHP_EOL, $newMacs) . PHP_EOL, FILE_APPEND);
        chmod($macFile, 0755);
        echo "MACs saved to $macFile\n";
    }

    $existing = loadExistingFileData($upFile);
    if (!in_array($portalUrl, $existing['urls'])) {
        file_put_contents($upFile, $portalUrl . PHP_EOL, FILE_APPEND);
    }
    $newUserPass = array_diff($data['userpass'], $existing['userpass']);
    if (!empty($newUserPass)) {
        file_put_contents($upFile, implode(PHP_EOL, $newUserPass) . PHP_EOL, FILE_APPEND);
        chmod($upFile, 0755);
        echo "User/Pass combos saved to $upFile\n";
    }
}

if (empty($portalBlocks)) {
    echo "No valid portal URLs found in $inputFile\n";
} else {
    echo "Processing complete.\n";
}
?>

Sollte jetzt auch mit meherern URLs in einer Datei klar kommen.
 
Zurück
Oben