HTTP-Fehler bei ProxyTest?

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

  • HTTP-Fehler bei ProxyTest?

    Hallo,

    ich will eine PHP-Datei auf meinen Server über einen Proxy öffnen, die mir dann ermittelt wie anonym bzw. transparent der Proxy ist.

    Ich habe aber ein Problem beim Übergeben der Seite an den Proxy.

    So sieht mein Code aus:
    PHP-Code:
      function CheckProxy($ip,$port,$timeout)
      { 
        if (
    $err fsockopen($ip$port$errno$errstr$timeout)):
          
          
    fputs($err"GET http://meinedomain/sources/anonymity.php HTTP/1.0\r\n");
          
    fputs($err"Host: ".gethostbyaddr($ip)."\r\n");
          
    fputs($err"Connection: close\r\n\r\n");

          while (!
    feof($err)) {
            echo 
    fgets($err,4096);
          }

          
    fclose($err); 
               
        endif;
      } 
    Ich bekomm aber immer diese Fehlermeldung zurück:
    HTTP/1.0 503 Service Unavailable Content-Type: text/html
    You are trying to use a node of the CoDeeN CDN Network.
    Numerical hostnames are not allowed.
    Mein Augenmerk liegt hier:
    ... Numerical hostnames are not allowed.
    Hab schon versucht mit gethostbyaddr() das zu beseitigen, aber der bleibt immer bei der IP.

    Ich hab das schon mit bestimmt 20 Proxys versucht. Überall das Gleiche.
    Ich habe auch schon recherchiert, ob ich die HTTP-Anfrage anders stellen kann, aber hab nix weiter gefunden.

    Kann mir bitte jemand auf die Sprünge helfen?
    Danke.
    Zuletzt geändert von ; 08.03.2007, 09:51.

  • #2
    gethostbyaddr(): Returns the host name of the Internet host specified by ip_address or a string containing the unmodified ip_address on failure.

    Kommentar


    • #3
      Gibt's denn bei HTTP1.0 den Host bereits Meine dass es ihn erst seit 1.1 gibt
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        ich weiß der er die adresse bei einem fehler wieder zurück gibt!

        hab jetzt mal ein proxy gefunden, wo sich der host ermitteln lässt.
        jetzt bekomm ich aber das zurück:

        HTTP/1.0 400 Bad Request Content-Type: text/html You are trying to use a node of the CoDeeN CDN Network. While the Host header is generally optional for HTTP, it is required for CoDeeN. Furthermore, numerical hostnames are not allowed. Please add this header and try again.
        Bad Request, heißt ja soviel wie das der Header jetzt nicht dem Standard entspricht, oder?

        Kommentar


        • #5
          Original geschrieben von frankburian
          While the Host header is generally optional for HTTP, it is required for CoDeeN. Furthermore, numerical hostnames are not allowed. Please add this header and try again.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            mhh, aber so richtig versteh ich das nicht.
            was soll ich denn dem header hinzufügen?

            der host-header ist optional für http, wie es dort steht. aber für CoDeeN ist es erforderlich. aber den Host-Header hab ich doch gesetzt.

            komm grad nicht so richtig nach!?

            Kommentar


            • #7
              Und wieso schreibst du bei Host nicht einfach den Domainnamen deines Servers als String rein ?
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                weil da genau die selber fehlermeldung kommt.
                ???

                Kommentar


                • #9
                  kann mir jemand weiterhelfen?
                  hab das Problem noch nicht gelöst?

                  danke

                  Kommentar


                  • #10
                    Poste bitte einmal alles, was in den Socket geschrieben und gelesen wird. Kein PHP-Code, nur was über die Leitung geht.

                    Kommentar


                    • #11
                      Übergeben wird:
                      GET http://meinedomain.de/sources/anonymity.php HTTP/1.0\r\n
                      Host: mx.meinhost.de\r\n"
                      Und Zurück kommen SOLL inkl. den entsprechenden Werten dann (erstmal nur Testausgabe)
                      REMOTE_ADDR=195.126.224.195
                      HTTP_CLIENT_IP=
                      HTTP_X_FORWARDED_FOR=
                      HTTP_X_FORWARDED=
                      HTTP_FORWARDED_FOR=
                      HTTP_FORWARDED=
                      HTTP_VIA=1.1 S01
                      HTTP_X_COMING_FROM=
                      HTTP_COMING_FROM=
                      aber kommt das
                      HTTP/1.0 400 Bad Request Content-Type: text/html You are trying to use a node of the CoDeeN CDN Network. While the Host header is generally optional for HTTP, it is required for CoDeeN. Furthermore, numerical hostnames are not allowed. Please add this header and try again.
                      Ich fasse nochmal alles zusammen, wie ich es Codetechnisch versuche!

                      Aufruf der Funktion z.B. mit
                      PHP-Code:
                        $ip '131.188.44.100:3124';
                        
                      $exp explode(':',$ip);
                        
                      CheckProxy($exp[0],$exp[1],5); 
                      Die Funktion nochmal:
                      PHP-Code:
                        function CheckProxy($ip,$port,$timeout)
                        { 
                          if (
                      $err = @fsockopen($ip$port$errno$errstr$timeout)):     
                            
                      fputs($err"GET http://meinedomain.de/sources/anonymity.php HTTP/1.0\r\n");
                            
                      fputs($err"Host: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\r\n");
                            
                      fputs($err"Connection: close\r\n\r\n");
                            while (!
                      feof($err)):
                              echo 
                      fgets($err,4096);
                            endwhile;
                            
                      fclose($err);           
                          endif;
                        } 
                      Das ist der Inhalt der Datei "anonymity.php" der zurückgegeben werden soll (erstmal reine Testausgabe):
                      PHP-Code:
                      <?
                        $arrQuerys = array('REMOTE_ADDR',
                                          'HTTP_CLIENT_IP',
                                          'HTTP_X_FORWARDED_FOR',
                                          'HTTP_X_FORWARDED',
                                          'HTTP_FORWARDED_FOR',
                                          'HTTP_FORWARDED',
                                          'HTTP_VIA',
                                          'HTTP_X_COMING_FROM',
                                          'HTTP_COMING_FROM');

                        for ($i=0; $i<count($arrQuerys); $i++):
                          if (isset($_SERVER[$arrQuerys[$i]]))
                            $$arrQuerys[$i] = $_SERVER[$arrQuerys[$i]];
                          else if (isset($_ENV[$arrQuerys[$i]]))
                            $$arrQuerys[$i] = $_ENV[$arrQuerys[$i]];
                          else if (@getenv($arrQuerys[$i]))
                            $$arrQuerys[$i] = getenv($arrQuerys[$i]);
                        endfor;
                      ?>
                      REMOTE_ADDR=<?echo $REMOTE_ADDR?><br />
                      HTTP_CLIENT_IP=<?echo $HTTP_CLIENT_IP?><br />
                      HTTP_X_FORWARDED_FOR=<?echo $HTTP_X_FORWARDED_FOR?><br />
                      HTTP_X_FORWARDED=<?echo $HTTP_X_FORWARDED?><br />
                      HTTP_FORWARDED_FOR=<?echo $HTTP_FORWARDED_FOR?><br />
                      HTTP_FORWARDED=<?echo $HTTP_FORWARDED?><br />
                      HTTP_VIA=<?echo $HTTP_VIA?><br />
                      HTTP_X_COMING_FROM=<?echo $HTTP_X_COMING_FROM?><br />
                      HTTP_COMING_FROM=<?echo $HTTP_COMING_FROM?><br />
                      Aber wie gesagt. Die Datei wird erst garnicht aufgerufen, weil der Header wohl fehlerhaft zu sein scheint. Weiß aber nicht wo und warum?
                      Zuletzt geändert von ; 09.03.2007, 09:20.

                      Kommentar


                      • #12
                        echo 'Geschickt:' . $alles_was_mit_fputs_übergeben_wird;
                        echo 'Gekriegt:' . $alle_Ergebnisse_von_fgets;

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          schaue nochmal in der vorigen Antwort, habs dazu editiert!

                          Kommentar


                          • #14
                            gethosbyaddr() löst zu einem MX auf? Nagut, möglich ist es ja.

                            Dir fällt bei den nur drei gesendeten Zeilen nichts auf? Du findest es normal, mit einem Request example.com und mx.example.com anzusprechen? Ist dir bewußt, dass das zwei physisch verschiedene Hosts sein können?

                            Vielleicht um solche Mißgeschicke zu vermeiden, wurde HTTP/1.0 so entworfen, dass der GET-Header eine Resource spezifiziert und der HOST-Header festlegt, auf welchem Host sie liegt. Also so:

                            GET /sources/anonymity.php HTTP/1.0\r\n
                            Host: example.com\r\n"

                            Auch bei HTTP/1.0 ohne HOST-Header steht im GET kein http-Kram!

                            Kommentar


                            • #15
                              der Host gibt also an, wo das File was geholt werden soll liegt! Richtig?

                              habs so probiert: (der host ist die domain meines servers wo das projekt liegt)

                              GET /sources/anonymity.php HTTP/1.0\r\n
                              Host: proxytest.nquee.com\r\n

                              aber bekomm immer noch die fehlermeldung:
                              HTTP/1.0 400 Bad Request Content-Type: text/html You are trying to use a node of the CoDeeN CDN Network. While the Host header is generally optional for HTTP, it is required for CoDeeN. Furthermore, numerical hostnames are not allowed. Please add this header and try again.
                              woran könnte es noch liegen?

                              Kommentar

                              Lädt...
                              X