Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kawałek koda blokujący IP na dany czas ?
byczek
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 23.02.2004

Ostrzeżenie: (0%)
-----


Witam poszukuje scryptu który bedzie mi blokował do dostępu na www na dany IP

troch jasniej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mysle o kawałku kodu który sprawdza IP odwiedzającego i jesli jego suma odwiedzin w danym dniu lub godzine (dobrze by było zeby to szło ustawic) na www przekroczy np 3 razy zostanie zablokowany na okres np 6 lub 12H jesli rozumiecie o co mi chodzi byłbym wdzieczny za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


1. Do pobrania adresu IP lepiej użyć:
  1. <?php
  2. function GetClientIP()
  3. {
  4. $ip = 0;
  5.  
  6. if( ! empty( $_SERVER[ 'HTTP_CLIENT_IP' ] ) )
  7. {
  8. $ip = $_SERVER[ 'HTTP_CLIENT_IP' ];
  9. }
  10.  
  11. if( !empty( $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] ) )
  12. {
  13. $ipList = explode( ", ", $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] );
  14. if( $ip )
  15. {
  16. array_unshift( $ipList, $ip );
  17. $ip = 0;
  18. }
  19. foreach( $ipList as $v )
  20. {
  21. if( !eregi( "^(192.168|172.16|10|224|240|127|0.", $v ) )
  22. {
  23. return $v;
  24. }
  25. }
  26. }
  27.  
  28. return $ip ? $ip : $_SERVER[ 'REMOTE_ADR' ];
  29. }
  30.  
  31. ?>


2. Lepiej nie blokuj ludzi na podstawie samego IP, nawet uwzglądniając kilkakrotne wejście. Ponieważ w ten sposób możesz zablokować całe miasto lub jego część. Pamiętak o zmiennych adresach Neostrady.
Lepiej do takiego banowania użyć kombinacji IP + cookies. Do tego możesz dołożyć informacje o wersji przeglądarki i systemu operacyjnego. Dopiero takie informacje w bardziej jednoznaczny sposób identyfikują usera.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 01:55