Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z blokm IP
Forum PHP.pl > Forum > Przedszkole
piotr26
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 = array ("^20.23.([01]|[5][01]).","^20.23.44.55","^20.23.44.56");
  3. foreach($targetAddr as $var) {
  4.  
  5. if (!ereg($var, $_SERVER['REMOTE_ADDR']))  
  6.    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
isso
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 = array ("^20.23.([01]|[5][01]).","^20.23.44.55","^20.23.44.56");
  5. foreach($targetAddr as $var) {
  6.  
  7. if (ereg($var, $server))  
  8.   $allowForThis = 1;
  9.  
  10. }
  11.  
  12. if(!$allowForThis == 1){
  13.    echo 'Brak dostępu';
  14. }
  15. ?>
piotr26
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....
isso
dodałem to w poprzednim poście...
piotr26
dlaczego ja od razu nei napisałem na forum....


działą cudownie dziekuje.

superrr
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.