Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP]problem z blokm IP

Napisany przez: piotr26 12.02.2009, 13:05:01

Witam i prosze o pomoc bo rece mi opadają.

Mam zablokowac w zasadzie to przepuscic grupe adresów ip.
Szperałem w necie i znalazłem kilka przykładowych kodów ale nie do konca to działa.

  1. <?php
  2. $targetAddr = http://www.php.net/array ("^20.23.([01]|[5][01]).","^20.23.44.55","^20.23.44.56");
  3. foreach($targetAddr as $var) {
  4.  
  5. if (!http://www.php.net/ereg($var, $_SERVER['REMOTE_ADDR']))  
  6.    http://www.php.net/die('Nie możesz wejść na tę stronę!');
  7. }
  8. ?>


Musze zablokowac wszystkie inne adresy poza 20.23.0.* ; 20.23.1.* ; 20.23.50.* ; 20.23.51.* ; 20.23.44.55 ; 20.23.44.56
czyli te powyzsze mam przepuszczac a kazdy pozostały ma zostac zablokowany.

Prosze o pomoc bo rece mi juz opadaja po prostu masakra.

"^20\.23\.([01]|[5][01])\." jak zostawie tylko ta maske to działa dla sieci 20.23.0,20.23.1,20.23.50,20.23.51 ale jak chce dokładac dodatkowe adresy to kicha zaczyna fiksowac.

pomocy sad.gifsad.gif

Napisany przez: isso 12.02.2009, 13:16:58

ale bo popatrz... jak jest jakies IP to ono działa do 1, ale już nie działa do drugiego... musisz wstawić cos takieg:

  1. <?php
  2. else{
  3. break;
  4. }
  5. ?>


// eee chociaż nie... bo to w dalszym ciagu sie bedzie wywalało... chyba lepiej byłoby tu użyc preg_match(); bo w innym wypadku musisz zrobić zmienną spełnialności... i sprawdzać ją na koniec... czyli przechodzisz przez całą tablicę... i jeżeli dla któregoś jest true to robisz '$allowForThis = 1' i pozniej na koniec sprawdzasz czy $allowForThis jest 1(to dostęp) lub 0.

To powinno byc ok
  1. <?php
  2. $server = '20.24.0.1.2';
  3. $allowForThis = 0;
  4. $targetAddr = http://www.php.net/array ("^20.23.([01]|[5][01]).","^20.23.44.55","^20.23.44.56");
  5. foreach($targetAddr as $var) {
  6.  
  7. if (http://www.php.net/ereg($var, $server))  
  8.   $allowForThis = 1;
  9.  
  10. }
  11.  
  12. if(!$allowForThis == 1){
  13.    http://www.php.net/echo 'Brak dostępu';
  14. }
  15. ?>

Napisany przez: piotr26 12.02.2009, 13:30:28

smile.gif

fajnie tylko jakbyc mogł mi to naskrobac mniej wiecej chociaz bo niezbyt czaje

please a z funkcj te druga tez probowałem i tez miałem podobny problem....

Napisany przez: isso 12.02.2009, 13:33:32

dodałem to w poprzednim poście...

Napisany przez: piotr26 12.02.2009, 13:52:59

dlaczego ja od razu nei napisałem na forum....


działą cudownie dziekuje.

superrr

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)