Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]problem z blokm IP
piotr26
post
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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
isso
post
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
Post #3





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

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


(IMG:http://forum.php.pl/style_emoticons/default/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
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:15