Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit SERVER & REMOTE_ADDR

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit SERVER & REMOTE_ADDR

    Hallo Ihr,

    die Abfrage if($_SERVER["SERVER_ADDR"] == $_SERVER["REMOTE_ADDR"]) respektive if($calling_ip == $server_ip) führt zu Erfolg, wenn das Skript auf einem externen Webspace liegt und via Cron ausgeführt wird und es führt zu keinem Erfolg, wenn das Skript auf dem Cronjobausführenden Server liegt.

    Und das ganze selbst dann, wenn ich $_SERVER["REMOTE_ADDR"] mit "localhost" oder "127.0.0.1" ersetze.

    Lasse ich jedoch die Abfrage über Übereinstimmung der IP weg und wird dann das Skript manuell oder per Cron aufgerufen, läuft es einwandfrei .

    Was mache ich falsch?

    PHP-Code:
    $server_ip $_SERVER["SERVER_ADDR"];
    $calling_ip $_SERVER["REMOTE_ADDR"];
    $user = @$_GET["user"];
    $pass = @$_GET["pass"];

    $sql1 "SELECT * FROM `db_settings` WHERE `token` = 'import' AND `name` = 'user' AND `value` = '$user'";
    $result1 = @mysql_query($sql1);
    $number1 = @mysql_numrows($result1);

    $sql2 "SELECT * FROM `db_settings` WHERE `token` = 'import' AND `name` = 'pass' AND `value` = '$pass'";
    $result2 = @mysql_query($sql2);
    $number2 = @mysql_numrows($result2);

    if((
    $calling_ip == $server_ip) && ($number1 == 1) && ($number2 == 1))
    {
    // do something
    }

    else
    {
    // access denied...



  • #2
    Bei "entferntem" Script wird der Cron-Job auf eine URL ausgeführt, d.h. ein Webserver ist beteiligt...

    Bei "lokalem" Script wird der Cron-Job mit einem CLI-Interpreter durchgeführt, kein Webserver beteiligt...


    Lass dir mal $_SERVER ausgeben, einmal bei lokaler Durchführung und einmal bei remote - da sollten Unterschiede erkennbar sein...
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar

    Lädt...
    X