Roger: Cacheserver umgehen...

Hi

Folgendes Problem: Ich gehe über einen Router ins Netz und weiss daher nie wie meine IP lautet. Deswegen hab ich auf meinem Webserver ein CGI angelegt das einfach nur die IP vom Client (= meine IP) ausgibt. Soweit so gut aber mein Provider (Arcor) hat angefangen Caches zu benutzen und seit dem mein Einwahlnkoten auch einen hat bekomme ich nur noch die IP vom Cacheserver.

Weiss jemand wie man den Cacheserver umgehen kann? Das es irgendwie gehen muss hab ich auf diversen Seiten gesehen die meine richtige IP-Adresse anzeigen...

  1. hi!

    Weiss jemand wie man den Cacheserver umgehen kann? Das es
    irgendwie gehen muss hab ich auf diversen Seiten gesehen die meine »» richtige IP-Adresse anzeigen...

    Wenn der jeweilige Cache/Proxy richtig konfiguriert ist, müsste es
    bereits helfen, einen passenden HTTP-Header mit auszugeben, in dem
    Fall Expires: mit einem geeigneten Wert.

    === cut ===
    #!/usr/bin/perl

    print <<"EOT";
    Content-type: text/plain
    Expires: 0

    IP: $ENV{'REMOTE_ADDR'}
    EOT

    === cut ===

    "Expires: 0" bedeutet soviel wie "already expired". Alternativ kannst
    du da auch ein korrektes HTTP-Datum angeben, sowas wie "Thu, 01 Dec
    1994 16:00:00 GMT". Für mehr Informationen zur Cache-Steuerung durch
    HTTP-Header siehe auch die entsprechende RFC[1].

    bye, Frank!

    [1] RFC 2616, HTTP/1.1, http://www.faqs.org/rfcs/rfc2616.html

    1. Hi! :)

      Weiss jemand wie man den Cacheserver umgehen kann? Das es
      irgendwie gehen muss hab ich auf diversen Seiten gesehen die meine »» richtige IP-Adresse anzeigen...

      Wenn der jeweilige Cache/Proxy richtig konfiguriert ist, müsste es
      bereits helfen, einen passenden HTTP-Header mit auszugeben, in dem
      Fall Expires: mit einem geeigneten Wert.

      "Expires: 0" bedeutet soviel wie "already expired". Alternativ kannst
      du da auch ein korrektes HTTP-Datum angeben, sowas wie "Thu, 01 Dec
      1994 16:00:00 GMT". Für mehr Informationen zur Cache-Steuerung durch
      HTTP-Header siehe auch die entsprechende RFC[1].

      Hmm, leider hat es keine Auswirkungen. :( Ich bin mir Perl nicht so vertraut aber $ENV wird doch beim laden des Scripts initialisiert? Könnte es sein das der Cacheserver schon an dieser Stelle reinpuscht? Damit wäre bereits die Anfrage gecached... :(( Any ideas?

      cu
       Roger

      1. Hmm, leider hat es keine Auswirkungen. :( Ich bin mir Perl nicht so vertraut aber $ENV wird doch beim laden des Scripts initialisiert? Könnte es sein das der Cacheserver schon an dieser Stelle reinpuscht? Damit wäre bereits die Anfrage gecached... :(( Any ideas?

        Ich denke, du hast keine Chance! Ein Proxy nimmt deine Anfragen und entgegen und ersetzt sie durch eigene Anfragen. Dein Server kommuniziert nur mit dem Proxy, also kennt er auch nur dessen IP-Adresse. Der Sinn solch eines Proxys ist es unter anderem, die User, die ihn benutzen, zu anonymisieren. Von daher ist es eher wahrscheinlich, daß der Proxy keinerlei Informationen über seine User und speziell über dich rausrückt.

        Um da sicherzugehen, solltest du dir mal das komplette Environment ausgeben lassen. Vielleicht steht ja in einer anderen Variablen noch was interessantes drin.

        Interessant wäre auch, welche anderen Seite deine echte IP rauskriegen, so daß man vergleichen kann. Denn es gibt durchaus Unterschiede bei verschiedenen Zugangstechniken und -protokollen. Für HTTP ist ein Proxy installiert, das muß für FTP oder Telnet nicht der Fall sein (und schon könnte man die echte IP wieder rausfinden - allerdings dann nicht mehr mit CGI, wie jetzt).

        - Sven Rautenberg