Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Banowanie
Forum PHP.pl > Forum > Gotowe rozwiązania
krolash
Witam odrazu przejde do sedna sprawy. Szukałem na forum i znalazłem skrypt baujący ip ale on mi niedziała wyskakuje ciągle napis że niejestem zbanowany chociaż ustawiłem na siebie angrysmiley.gif . oto ten skrypt:
  1. <?
  2. $ip_table=file(&#092;"ip.dat\");
  3. $ip_total=count($ip_table);
  4. for($i=0; $i<$ip_total; $i++)
  5. {
  6. $ip_table[$i]=trim($ip_table[$i]);
  7. if($ip_table[$i]==$REMOTE_ADDR)
  8. {
  9. die(&#092;"Dostep dla IP \".$REMOTE_ADDR.\" zablokowany!\");
  10. }
  11. }
  12. echo &#092;"Witaj w serwisie...\";
  13. ?>

Prosze o pomoc sadsmiley02.gif
Parti
Moze zamiast $REMOTE_ADDR wstaw $_SERVER['REMOTE_ADDR']
krolash
Wtedy wyskakuje takie coś
Cytat
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/artur/public_html/demo/start.php
Parti
  1. <?php
  2.  
  3. $ip_table = file(&#092;"ip.dat\");
  4. $ip_total = count($ip_table);
  5.  
  6. for($i = 0; $i < $ip_total; $i++)
  7. {
  8. $ip_table[$i] = trim($ip_table[$i]);
  9.  
  10. if($ip_table[$i] == $_SERVER['REMOTE_ADDR'])
  11. die(&#092;"Dostep dla IP \" . $_SERVER['REMOTE_ADDR'] . \" zablokowany!\");
  12. }
  13.  
  14. echo &#092;"Witaj w serwisie...\";
  15.  
  16. ?>


U mnie działa.

Przykład pliku ip.dat:
Kod
10.22.10.1
10.22.10.129
krolash
hurrra działa!!! juz wiem gdzie miałem błąd inaczej miałem w pliku ip.dat.
thanks thanks very much jedyne forum na którym otrzymałem pomoc. biggrin.gif
tiraeth
Jeżeli chciałbyś przyśpieszyć działanie skryptu to można tak:

  1. <?php
  2. $ip_Table = file('ip.dat');
  3.  
  4. if( in_array($_SERVER['REMOTE_ADDR'], $ip_Table) )
  5. {
  6.  die(&#092;"Dostep dla <b>\" . $_SERVER['REMOTE_ADDR'] . \"</b> zablokowany!\");
  7. }
  8. ?>


no i wrzucasz to nad <HTML> i wtedy będzie działać.. smile.gif troszkę szybciej bo nie musi jechać pętlą smile.gif
djpeterek
tylko jak ktos ma lana to moze miec zmieniane IP np co 2 miechy u mnie tak jest i wtedy z banowania moga byc nici nie do konca ale sa takie przypadki
FiDO
Cytat(Tiraeth @ 2004-08-19 16:39:53)
Jeżeli chciałbyś przyśpieszyć działanie skryptu to można tak:

  1. <?php
  2. $ip_Table = file('ip.dat');
  3.  
  4. if( in_array($_SERVER['REMOTE_ADDR'], $ip_Table) )
  5. {
  6.      die(&#092;"Dostep dla <b>\" . $_SERVER['REMOTE_ADDR'] . \"</b> zablokowany!\");
  7. }
  8. ?>

Zeby to dzialalo, trzeba by jeszcze dolozyc linijke
  1. <?php
  2. $ip_Table = array_map('rtrim', $ip_Table);
  3. ?>

zeby pozbyc sie znakow konca linii, ktore przy odczycie za pomoca file nie sa usuwane.
tiraeth
heh.. o tym to nie wiedziałem smile.gif

dzięki FiDO!!
militis
Cytat(djpeterek @ 2004-08-22 18:15:31)
tylko jak ktos ma lana to moze miec zmieniane IP np co 2 miechy u mnie tak jest i wtedy z banowania moga byc nici nie do konca ale sa takie przypadki

Mozesz banowac zamiast zewnetrznego ip, wewnetrzne.

$HTTP_X_FORWARDED_FOR zwraca ip wewnetrzne jezeli uzytkownik jest w sieci lan, albo jego ip jak jest za proxy, itp. Wez to pod uwage, pamietaj ze banowanie nie bedzie dzialac na uzytkownika jak bedzie za proxy, bo bys cale proxy musial zbanowac.
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-2024 Invision Power Services, Inc.