Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]37[/thread]

Webserver, Windows, Client-IP anstatt Proxy-IP: bitte um Lösungsvorschläge



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
steffenw
 2003-09-13 01:38
#3375 #3375
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich habe gerade mal nachgelesen. Es gibt ein Modul: Apache::ProxyAddr. Damit kann man im cgi-Script die Client-IP anstatt der Proxy-IP erfahren. Nur für das Modul braucht man mod_perl. Gibt es das überhaupt für Windows, ich glaube doch eher nicht.

Dann habe ich mal etwas von einem in Perl geschrieben Webserver gelesen, weiß nur nicht mehr wo. Wäre das die Lösung, damit ich das Gewünschte dort einbauen kann?

Gebt mir mal einen Tip, wo ich da weitersuchen muß.\n\n

<!--EDIT|steffenw|1063402999-->
$SIG{USER} = sub {love 'Perl' or die};
jan10001
 2003-09-13 02:07
#3376 #3376
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Quote
Ich habe gerade mal nachgelesen. Es gibt ein Modul: Apache::ProxyAddr. Damit kann man im cgi-Script die Client-IP anstatt der Proxy-IP erfahren. Nur für das Modul braucht man mod_perl. Gibt es das überhaupt für Windows, ich glaube doch eher nicht.
Ja es gibt mod_perl auch für Windows. Warum denn nicht?

Hier ein Link zu einen Artikel, der erklärt dir wie es geht:
Indianer von innen

Grüße,
Jan
esskar
 2003-09-13 04:18
#3377 #3377
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
dafür brauchst du,
1. keinen Apache
2. kein mod_perl
3. Glück

Code: (dl )
1
2
3
4
5
6
7
8
9
10
package Apache::ProxyAddr;
use Apache::Constants qw(:common);
sub handler {
my $r = shift;
if ($r -> header_in('X-Forwarded-For') =~ /([^,\s]+)$/) {
$r -> connection -> remote_ip($1);
}
return OK;
}
1;


wenn der Proxy in den HTTP Header
X-Forwarded-For: xxx.xxx.xxx.xxx

schreibt, kannst du vielleicht davon ausgehen, dass diese ip-addresse (xxx.xxx.xxx.xxx) dann die Addresse des eigentlichen clients war!
jan
 2003-09-13 13:18
#3378 #3378
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
es könnte auch das feld HTTP_VIA sein, imho. aber sonst der selben meinung, mod_perl oder ein in perl geschriebener webserver wäre ein klein bisschen overkill ;)
SirLant
 2003-09-13 18:10
#3379 #3379
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
der Webserver in Perl ist HTTP::Daemon
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
steffenw
 2003-09-15 23:01
#3380 #3380
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=jan,13.09.2003, 11:18]es könnte auch das feld HTTP_VIA sein, imho. aber sonst der selben meinung, mod_perl oder ein in perl geschriebener webserver wäre ein klein bisschen overkill ;)[/quote]
Also bei HTTP_VIA steht der Name des Proxy drin.

So richtig sehe ich nicht durch. Heute habe ich erst mal den Apache installiert und mußte festestellen, daß ich es nicht hinbekomme, ihm zu sagen, wo Perl liegt und daß er .pl's ausführen soll. Im Internet habe ich nur widersprüchliche Aussagen zur Konfiguration gefunden. Schei.... Indianer.

Sonst nehme ich immer Sambar als Webserver, da ist simples Perl dabei, brauche ich den Pfad nur austauschen.
$SIG{USER} = sub {love 'Perl' or die};
esskar
 2003-09-16 12:36
#3381 #3381
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=esskar,13.09.2003, 02:18]dafür brauchst du,
1. keinen Apache[/quote]
was verstehst du nicht?
jan
 2003-09-16 12:58
#3382 #3382
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
steffen: beim apache, wenn du den benutzen willst, brauchst du nciht zu sagen, wo perl liegt. du konfigurierst ihm ein cgi-bin und legst da deine script hinein. im shebang (erste zeile im script) gibst du bekannt, wo perl liegt. dabei muss die zeile folgendes format haben:
#!/pfad/zu/perl
unter windows eventuell, wenn apache und perl nicht auf der selben platte lieben, mit laufwerksbuchstabe.
#!/c:/perl/bin/perl
als beispiel. / statt \.

und in HTTP_VIA kann auch durchaus die IP des eigentlichen clients stehen... das handeln die proxies unterschiedlich. oder, was auch sein kann, sie verraten dir gar nicht, dass sie da sind und geben nichts über ihren client bekannt.
steffenw
 2003-09-16 22:49
#3383 #3383
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
"esskar", wie soll ich an die Antwort, also den Header vom Proxy herankommen, um einen regulären Ausdruck anzuwenden? In meinem vom Webserver gestartetem Script habe ich doch nur Umgebungsvariablen und darin ist die Information nicht enthalten.

Wenn ich ein Modul anwende, welches für Apache ist (use Apache::Constants qw(:common);), kann ich das doch nicht bei einem anderen Webserver anwenden.

Das ist doch genau der Gedanke, daß, wenn ich Apache nehme ich solche Handler einbinden kann.

Daher rühert auch der Gedanke einen eigenen Webserver zu schreiben. Wahrscheinlich werde ich mal einen super-super-primitiven schreiben, daß ich mal sehe, wie das alles aussieht, was da vom Proxy kommt.

Wahrscheinlich bin ich auch auf dem Holzweg, aber für mich, "esskar" ist noch keine Logik zu erkennen.
$SIG{USER} = sub {love 'Perl' or die};
jan
 2003-09-16 22:59
#3384 #3384
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
>In meinem vom Webserver gestartetem Script habe ich doch nur Umgebungsvariablen und darin ist die Information nicht enthalten.

dann ist dein webserver schrott, wenn er da etwas herausfiltert. die informationen sollten dir in den umgebungsvariablen, die hier nun schon genannt wurden, bereitstehen.
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2003-09-13 01:38.