Der Martin: IP-Cam forward - warum muss htaccessuser/camuser gleich sein?

Beitrag lesen

Hallo,

ich möchte gerne eine IP-Cam über einen ext. Webserver erreichbar machen.

nein, das weiter unten gezeigte Script lässt erkennen, dass der "ext. Webserver" nur die aktuelle passende IP-Adresse nachschlägt und dann eine Weiterleitung dorthin macht. Ergo: Der Client fragt bei deinem Strato-Server bloß nach dem Weg und verbindet sich dann im zweiten Schritt selbst mit der Kamera.
"Über einen ext. Webserver erreichbar" suggeriert dagegen eher, dass dieser Server als eine Art Proxy zur Kamera arbeitet. Das ist aber offenbar nicht der Fall.

In den "meisten" Apps kann ich:
URL: http://htaccessuser:htaccesspass@cam.meinedomain.de
camuser, campass
port
eingeben und den Stream abgreifen (oder andere Befehle).

Diese Notation (http://user:passwed@example.org) ist aber in HTTP nicht erlaubt. Viele Clients weisen das als fehlerhaft ab; ein paar wenige akzeptieren das, setzen es aber intern um, bevor sie einen Request mit einem korrekten AUTH-Header an den Server absetzen.

Dabei sendet die App zB:

url/videostream.cgi?rate=11&user=camuser&pwd=campass

Soso.

<?php
    $uri = $_SERVER['REQUEST_URI']; // $uri enthält command
    if (isset($_GET['user']) &&  isset($_GET['pwd'])) { // kucken ob reguläre Anfrage
        $user = $_GET['user'];
        $pass = $_GET['pwd'];
            
        $port = 32154;
        $handle = fopen ("ip.txt","r"); // meine IP holen (dyndns) - Datei wird extern aktualisiert
            $myip = fgets($handle);
        fclose($handle);
        logger($uri,"ok");    // schreiben das OK
        $link = "Location: http://".trim($myip).":".$port. $uri;
        header($link);
    }else{ // wenn user pass
        logger($uri,"nix");
    }    
    exit();
?>

Tja, wie dedlfix schon sagte: Die aus den GET-Parametern kopierten Werte $user und $pwd verwendest du nie wieder. Sie müssen einfach nur da sein, ganz gleich, mit welchem Wert.

Das ganze funktioniert allerdings nur, wenn camuser, campass = htaccessuser, htaccesspass ist, als wenn die Cam auch htaccess hätte.

Und hat sie?

Wie sieht denn genau der Request aus, den dein Browser nach dem Redirect abschickt? Wiederholt er etwa die Zugangsdaten und die AUTH-Header des ursprünglichen Requests?

So long,
 Martin

--
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy