Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Banowanie z "maskami" ? i *, Funkcja, PHP 4 i 5
hwao
post
Post #1


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Na dole podalem przyklad pelnego sprawdzonego uzycia z banami w pliku txt
Niezmiernie sie nudzilem :-) wiec napisalem cos takiego moze komus sie przyda :-P
Co prawda nie ma cache itp (banow na hosty) ale powino wystarczyc dla mniej wymagajacych ;-) (zawsze mozna rozbudowac)

  1. <?php
  2.  function ban( $arrList, $ip ) {
  3. if( in_array( $ip, $arrList ) ) {
  4.  // Ma bana
  5.  return TRUE;
  6. }
  7.  
  8. // Jezeli dane jedziesz z pliku to proponuje dopisac do tej tablicy jeszcze
  9. // \"n\" => '', \"r\" => ''
  10. // :-)
  11.  
  12. $replace = array( '*' => '([0-9]{1,3})', '?' => '([0-9]{1})', '.' => '.' );
  13.  
  14. foreach( $arrList AS $key => $value ) {
  15. if( preg_match( '#^'.strtr( $value, $replace ).'$#', $ip ) ) {
  16.  return TRUE;
  17. }
  18.  
  19. }
  20.  
  21. return FALSE; 
  22.  }
  23. ?>

To cala funkcja nastepnie...


Proste uzycie
  1. <?php
  2.  $array = array(
  3. '10.1.1.1',
  4. '*.212.0.1',
  5. '1?2.3.4.2',
  6. '*.1?2.3.*'
  7.  );
  8.  
  9.  $ip = '10.1.1.1';
  10.  //$ip = $_SERVER['REMOTE_ADDR'];
  11.  
  12.  if( ban( $array, $ip ) ) {
  13. echo 'Zbanowany';
  14.  }
  15.  else {
  16. echo 'NieBan';
  17.  }
  18. ?>


a to chyba najbardziej wygodne
  1. <?php
  2.  if( !ban( file( 'plik.bany.txt' ), $_SERVER['REMOTE_ADDR'] ) ) {
  3. die( 'Aaa... Twoje ip jest zbanowane...' );
  4.  }
  5. ?>


Chyba glowny plus to maski wiec dzialaja one tak
* dowolna liczba z zakresu 0-255 czyli np 10.0.0.*
Banuje
10.1.1.0
10.1.1.1
...
10.1.1.255

? dowolna liczba z zarkesu od 9-0 czyli
10.?.0.0
Banuje
10.1.0.0
10.2.0.0
10.3.0.0
...
10.9.0.0
Ale juz nie
10.10.0.0 :-) (jakby bylo zamias ? * to by byl ban)
Mozna oczywsice z ? kozystac w polaczeniu np
10.12?.1.1
Banuje
10.120.1.1
10.121.1.1
...
10.129.1.1

Jak i laczyc wszytko np
*.23?.*.*
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Caw
post
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 13.03.2005

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


CZY NIKT MI NIE PODPOWIE JAK SIE UMEISZCA TEN SKRYPT NA STRONIE WWW ? (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)


Świetnie bo to jest to czego szukam tylko mam pytanie bo nie wiele wiem o php wiec czy moze ktoś pomóc i opisać czy ten kod wstawia sie w jakies pliki .txt a któro wstawia się do samego index.php dla was to jest trywialne dla mnie jednak nie (IMG:http://forum.php.pl/style_emoticons/default/tiredsmiley.gif)

i czy ten skrypt blokuje ip na wszytskich przegladarkach tzn jak ktos wchodzi z IE czy z FireFoxa ? bo ja mialem taki co blokuje ale tylko pod firefoxa (IMG:http://forum.php.pl/style_emoticons/default/tiredsmiley.gif)

Ten post edytował Caw 30.03.2005, 20:44:05
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: 26.09.2025 - 07:34