Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]problem z blokm IP
piotr26
post 12.02.2009, 13:05:01
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.01.2007

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


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
Go to the top of the page
+Quote Post
isso
post 12.02.2009, 13:16:58
Post #2





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


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


Ten post edytował isso 12.02.2009, 13:31:26


--------------------
Go to the top of the page
+Quote Post
piotr26
post 12.02.2009, 13:30:28
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.01.2007

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


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....
Go to the top of the page
+Quote Post
isso
post 12.02.2009, 13:33:32
Post #4





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


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


--------------------
Go to the top of the page
+Quote Post
piotr26
post 12.02.2009, 13:52:59
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.01.2007

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


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


działą cudownie dziekuje.

superrr
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 18:29