Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

Portals

Magst noch eben schicken, wie ich das ganze Installieren kann?
 
Steht doch in der readme.
Entpacken sudo bash portals.sh
Rest wird dann abgefragt.
 
Du musst nur deine Portalordner und suser.json, xuser.json nach Installation der neuen Docker Version einfügen.
 
Ich habe das aktuellste Portals installiert und habe mit Optimus immer noch Probleme. Ich muss ettliche Male die working_macs.json löschen, bis die Sender funktionieren. Die Playlisten werden immer geladen jedoch bekomme ich bei SFVip-Player den Fehler "loading failed" und bei TiviMate "456". Wenn ich jeweils die IP des Clienten in der .json lösche und oft versuche, die Sender zu laden, geht es irgendwann. Woran kann das liegen? Es wirkt so, als würden sich die Player nur an eine Mac-Adresse binden und wenn diese nicht funktioniert, wird nicht automatisch auf eine funktionierende gewechselt, kann aber nicht zu 100% sagen, dass es daran liegt.

Habe ich aber teilweise auch bei anderen Portalen!

Lg
 
Ändere mal in der stalker.php

Code:
$expiryTime = 24 * 60 * 60;

zu

$expiryTime = 0

Wenn eine Mac funktioniert, wird die in der working_mac.json gespeichert, damit keinen zwei Clients die gleiche Mac zugeordnet wird.

456 bei Tivimate heißt aber: deine Anfrage kommt aus dem "falschen" IP Bereich.

Ich sag's nochmal: nutzt VPN, damit ihr, wenn ein Endpoint funktioniert, dabei bleiben könnt.
Die eigene IP macht häufig Ärger.
Geht ein Portal mit VPN nicht, dann halt ein anderes nehmen. Gibt ja genügend.
Klammert euch nicht so an mutant oder optimus!
 
Zuletzt bearbeitet:
Vielen Dank, das hat jedenfalls eine Verbesserung gebracht, was genau bewirkt die Berechnung und was beeinflusst die Änderung auf 0?
Ich konnte beobachten, dass ich teilweise immer noch Fehlercode 456 oder ganz neu 459 bekomme, das auch bei mehreren Testportalen, nicht nur bei Optimus. Dadurch, dass ich den Fehler 456 mal bekomme, mal aber nicht, kann davon ausgegangen werden, dass es nichts mit dem IP-Bereich zutun hat, oder? 459 ist mir neu!

Mir fällt immer noch auf, dass wenn ein Portal bei einem Client nicht funktioniert und ich aus der working_macs.json für diesen Client die Mac rauslösche und eine neue vergeben wird, dass es dann funktioniert.

Gibt es eine Möglichkeit, die gescannten Macs vorab mit einem Externen Script auf Funktionalität zu prüfen (eventuell mit Ablaufdatum?), da genau diese Macs, welche in der working_macs.json für den Clienten hinterlegt werden und nicht funktionieren, "nativ" auch nicht funktionieren oder gerade anderweitig in Verwendung sind (eventuell wars aber auch nur ein Zufall).

Ansonsten funktioniert das Script echt wunderbar, manchmal bleiben die Scans bei z.B. 89/130 stecken, wie kann man das verhindern bzw. fertigstellen?
 
0 heißt, jede Anfrage vom Client sollte mit neuer Mac belegt werden.
456 ist immer noch der IP Bereich. Selbst ein Portal hostet auf unterschiedlichen IPs (schau dir den redirect an). Da funktioniert ein Sender mit einer Mac und der gleiche nicht mit einer anderen.

Die Macs werden ja schon auf Ablaufdatum gecheckt. (müssen noch mindestens drei Monate gültig sein)

Scan kannst du nur versuchen neu anzustoßen. Stop ist halt: IP zeitweise gesperrt.
 
Ich werde das ganze mit den Redirects noch beobachten. Wie lange war die Ursprüngliche Zeit (24 *60 *60) eingestellt, bis ein Wechsel vorgenommen wird? Wenn ich die Rechnung verstehe, dann kann ich das Script ja selbst etwas fine tunen.
 
Zuletzt bearbeitet:
24x60x60 sind 24h.
In Sekunden.

Hab mal die working_mac Funktion angepasst.
 
Zuletzt bearbeitet:
Das Update in Portals wurde mir angezeigt und habe ich auch durchgeführt, jetzt kann ich die Wiedergabeliste in TiviMate und SFVip-Player nicht aktualisieren und bei mir läuft es nicht mehr, auch wenn ich die working_mac.json lösche.

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


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

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
Dann lassen wir es so wie es war.

Sowas lässt mir ja doch keine Ruhe....
Wer testen will: diese Funktion in der stalker.php austauschen:

PHP:
function getRealMacAddress($portalfolder) {
    global $suserData;
    $macFilePath = __DIR__ . "/$portalfolder/working_macs.json";
    $clientIP = getClientIP();
    $workingMacs = [];
    $currentTime = time();
    $expiryTime = 24 * 60 * 60;
    $portalURL = '';
    foreach ($suserData as $portal) {
        if ($portal['portalfolder'] === $portalfolder) {
            $portalURL = $portal['portal'];
            break;
        }
    }
   
    if (!$portalURL) {
        sendErrorResponse(500, "Portal URL not found for $portalfolder.");
    }
    if (file_exists($macFilePath)) {
        $jsonData = file_get_contents($macFilePath);
        $workingMacs = json_decode($jsonData, true);
    }
    foreach ($workingMacs as $ip => $data) {
        if ($currentTime - $data['timestamp'] > $expiryTime) {
            unset($workingMacs[$ip]);
        }
    }
    if (isset($workingMacs[$clientIP])) {
        $workingMac = $workingMacs[$clientIP]['mac'];
        $playerApiUrl = $portalURL . "/player_api.php?action=handshake&mac=" . urlencode($workingMac);
        $responsePlayerApi = @file_get_contents($playerApiUrl);
        $portalApiUrl = $portalURL . "/portal.php?type=stb&action=handshake&mac=" . urlencode($workingMac);
        $responsePortalApi = @file_get_contents($portalApiUrl);
        if (($responsePlayerApi !== false && strpos($responsePlayerApi, 'valid response') !== false) ||
            ($responsePortalApi !== false && strpos($responsePortalApi, 'valid response') !== false)) {
            return $workingMac;
        }
        unset($workingMacs[$clientIP]);
    }
    $macListFilePath = __DIR__ . "/$portalfolder/{$portalfolder}mac.txt";
    if (!file_exists($macListFilePath)) {
        sendErrorResponse(500, "MAC address file not found for $portalfolder.");
    }

    $macs = file($macListFilePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    if (empty($macs)) {
        sendErrorResponse(500, "No valid MAC addresses found for $portalfolder.");
    }
    shuffle($macs);
    $newMac = $macs[0];
    $workingMacs[$clientIP] = [
        'mac' => $newMac,
        'timestamp' => $currentTime
    ];
    file_put_contents($macFilePath, json_encode($workingMacs, JSON_PRETTY_PRINT));

    return $newMac;
}
 
Zuletzt bearbeitet:
Den neuen Code habe ich Testweise übernommen und derzeit sieht die Funktionalität gut aus, es wird nachgeladen, sollte etwas nicht frei sein und läuft ganz gut. Ich beobachte aber nur nebenbei neben der Arbeit, Praxistest dann am Abend und am Wochenende!

Vielen Dank
 
Ich verwende keine m3u sondern das Stalker Portal! Ich kanns aber gerne testweise probieren.
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…