Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] sprawdzanie adresu ip - problem... Opcje
Forum PHP.pl > Forum > Przedszkole
BioXymoron
Witam,

Mam sobie skrypcik:
Cytat
<?php
echo "REMOTE_ADDR: {$_SERVER["REMOTE_ADDR"]}<BR>\n";
echo "HTTP_X_FORWARDED_FOR: {$_SERVER["HTTP_X_FORWARDED_FOR"]}"
?>

Jak ktokolwiek wchodzi na tą stronę, to wynik jest następujący:
Cytat
REMOTE_ADDR: 0.0.0.0
HTTP_X_FORWARDED_FOR:

Strona jest na moim własnym serwerze postawionym na xampp-ie. Czy to coś nie tak ze skryptem, xampp-em czy może jeszcze coś nie tak?
Serwer jest w sieci i przechodzi przez router. Może powinienem jeszcze jakiś port otworzyć?

PZDR
Mike122
Spróbuj tak:
  1. <?php
  2. echo "REMOTE_ADDR: {".$_SERVER['REMOTE_ADDR']."}<BR>n";
  3. echo "HTTP_X_FORWARDED_FOR: {".$_SERVER['HTTP_X_FORWARDED_FOR']."}";
  4. ?>
flv
Nie dam głowy uciąć ale zdaje sie ze nagłówki HTTP_X_FORWARDED, HTTP_X_FORWARDED_FOR etc. są wysyłane tylko wtedy gdy użytkownik korzysta z nie w pełni anonimowego serwera posredniczacego.
BioXymoron
Dobra, za chwilkę sprawdzę ten kod. Głównie chodzi mi o sprawdzanie samego adresu IP.

A teraz ciekawostka. Na stronie za.pl skrypt zadziałał bez mrugnięcia, tak więc kod w tym przypadku jest ok (ale kto wie)...

A co do mojego serwera, to wywaliłem z niego xampp-a i zainstalowałem IIS (Win2000) i zainstalowałem mu PHP5 i tamten mój kod zadziałał. Na IIS-ie serwera prowadzić nie będę, bo mu po prostu nie ufam... winksmiley.jpg Zastanawiam się nad xampp-em albo czystym apache-m z PHP, ale to się jeszcze zobaczy.

Czytałem gdzieś, że safe mod w php wyłącza pewne skrypty. Czy wśród nich jest ten odnośnie adresu IP (nie ustawiałem safe moda, ale może był domyślnie, a zapomniałem tego sprawdzić przed jego wywaleniem... winksmiley.jpg )?
flv
http://us2.php.net/features.safe-mode
Safe mode wyłącza tylko niektóre funkcje(np. systemowe), więcej pod adresem u góry..
BioXymoron
No dobra... Na apachu 2.2.4 z PHP 5.2.1 jest to samo. Przejrzałem logi, a w nich mam np. coś takiego:
Cytat
0.0.0.0 - - [01/Jul/2007:13:29:53 +0200] "GET /test/ip.php HTTP/1.1" 200 59

Odpaliłem stronę, co sprawdza adres IP i wyświetla czas pobytu na stronie. Wynik jest taki:
Cytat
REMOTE_ADDR: {0.0.0.0}
Na stronie przebywasz już 9 min.

z takiego kodu:
  1. <?php
  2. include("czas.php"); 
  3. echo "REMOTE_ADDR: {".$_SERVER['REMOTE_ADDR']."}<BR>n";
  4. echo "Na stronie przebywasz już $ile min.";
  5. ?>


Jak był przez chwilkę IIS, to wykrywał przynajmniej mój adres sieciowy, a teraz nic... Może coś w konfigach powinienem zmienić albo coś? Pomysły mi się już skończyły... sad.gif
Benoit
Trzeba dobrze szukać w google biggrin.gif. A tak w ogóle to ten błąd występuje podobno pod Win2k albo pod wszystkimi windowsami (tego nie wiem).
Pomaga wpisanie gdziekolwiek w httpd.conf linijki:
Kod
Win32DisableAcceptEx

U mnie to pomogło.

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.