Schrift
[thread]3158[/thread]

falsche Client IP des Apache wegen DNS



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
MrMorpheus
 2005-08-26 13:54
#31162 #31162
User since
2005-08-26
4 Artikel
BenutzerIn
[default_avatar]
Hallo Allerseits,
ich versuche mit Apache (1) und mod_perl die Cient IP herraus zu finden. Allerdings wird die URL des Servers erst durch einen DNS Server aufgelöst und dann weiter geleitet. Das Problem ist, dass ich als Client IP immer die IP Adresse des DNS Server erhalte und nicht die eigentliche IP.
Habe es zuerst mit $ENV{REMOTE_ADDR} ausprobiert und eben die DNS IP erhalten, danach hab ich es mit
Code: (dl )
1
2
3
4
 
($r ist das Apache Object)
$c = $r->connection;
$c->remote_ip;
ausprobiert jedoch mit dem gleichen ergebenis.

Hatte von euch vieleicht jemand das geleiche Problem und schon eine Lösung gefunden?
jan
 2005-08-26 14:20
#31163 #31163
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
durch einen DNS-Server? bist du dir da sicher? oder meinst du vielleicht einen proxy?

lass dir mal alle elemente von %ENV ausgeben, ev. steht die wahre clientip doch irgendwo, manche proxys geben sie mit.
ptk
 2005-08-26 14:28
#31164 #31164
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=MrMorpheus,26.08.2005, 11:54]Hatte von euch vieleicht jemand das geleiche Problem und schon eine Lösung gefunden?[/quote]
Wie Jan schon sagte: wahrscheinlich meinst du Proxy.

Es gibt keine allgemeingueltige Loesung fuer das Problem.
MrMorpheus
 2005-08-26 14:50
#31165 #31165
User since
2005-08-26
4 Artikel
BenutzerIn
[default_avatar]
Ohh... selbstversändlich meinte ich Proxy und nicht DNS.  :)

Hatte mir schon mal mit
Code: (dl )
warn Dumper %ENV;
alle Keys inkl. Values ausgeben lassen, aber leider war immer die Proxy IP dabei.

Könnte es vieleicht sein, dass der Proxy seine IP als neue Absender IP in den Packeten zum Webserver einsetzt?

PS: Sorry, hatte ganz vergessen zu erwähnen das es sich hierbei um ein Intranet handelt.\n\n

<!--EDIT|MrMorpheus|1125053841-->
GwenDragon
 2005-08-26 17:43
#31166 #31166
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
my $client_ip = $ENV{'HTTP_CLIENT_IP'}
     || $ENV{'HTTP_X_FORWARDED_FOR'}
     || $ENV{'REMOTE_ADDR'};


Wenn der Verkehr über einen Router/Proxy läuft und dann erst der Apache kommt, sieht der natürlich nur noch die Proxy/Routeradresse. Solche Dinger können die IPs der Clients im Netzwerk durch NATverstecken.\n\n

<!--EDIT|GwenDragon|1125063933-->
Gast Gast
 2005-08-26 18:20
#31167 #31167
@GwenDragon Danke für den Tipp, kann es heute leider nicht mehr testen aber werd am Montag bescheit geben ob es damit klappt.

Danke für die Hilfe und allen ein schönes Wochenende
jan
 2005-08-26 20:14
#31168 #31168
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
nur der korrektheit wegen: der proxy macht natürlich kein NAT, sondern selbstständig einen eigenen httprequest (und ist damit wirklich faktisch dein client) und reicht das ergebnis davon dann (ev. verändert) an den rechner in deinem intranet weiter.
MrMorpheus
 2005-08-29 12:38
#31169 #31169
User since
2005-08-26
4 Artikel
BenutzerIn
[default_avatar]
[quote=GwenDragon,26.08.2005, 15:43]
Code: (dl )
1
2
3
my $client_ip = $ENV{'HTTP_CLIENT_IP'}
|| $ENV{'HTTP_X_FORWARDED_FOR'}
|| $ENV{'REMOTE_ADDR'};
[/quote]

Guten Morgen, ^_^

leider funktioniert es auch mit denn $ENV keys von GwenDragon nicht...
Wäre es den möglich, mir die Client IP über einen anderen weg zu holen?
jan
 2005-08-29 13:30
#31170 #31170
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
nein, wenn der proxy dir die IP seines clients nicht freiwillig liefert, hast du keine chance, sie herauszubekommen.
Strat
 2005-08-29 13:32
#31171 #31171
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn du mod_perl machst, dann kann es sein, dass %ENV leer ist... siehe Passing ENV variables to CGI
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2005-08-26 13:54.