Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Sprawdz IP i wpuść jeśli dobre
Cwirek1987
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

Ostrzeżenie: (10%)
X----


Mam strone od niedawna zaczołem przerabiać ja i pisać w jezyku php.

Chciałbym teraz na strone www dać nowy skrypt który by sprawdzał IP i dopuszczał badz nie dopuszczał ludzi z danego zakresu IP.

Problem mam z tym ze na moim serverze nie działa ten sposób z wykozytsaniem .htaccess. Chyba ze coś zle robie i otym nie wiem. Server mam na komputerze domowym postawiony na programie WebServ.

Może znacie jakieś inne sposoby lub jakieś gotowe skrypty które by mi mogły pomóc w jakiś sposób.

Z góry dzięki za pomoc!
Go to the top of the page
+Quote Post
fiszol
post
Post #2





Grupa: Zarejestrowani
Postów: 453
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


tak:
  1. <?
  2. $dozwolone_ip = array ('127.0.0.1','127.0.0.2'); // po przecinku kolejne
  3.  
  4. if(!in_array($_SERVER['REMOTE_ADDR'],$dozwolone_ip))
  5. die('Brak dostępu');
  6. ?>


Ten post edytował fiszol 9.06.2007, 12:57:30
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

Ostrzeżenie: (10%)
X----


A moge uzyć w tym skrypcie czegoś takiego np. 192.168.1.* zamiast wypisywać kazdy adres osobno?

Ten skrypt mi nie działa ;/ wyskakuje mi cos takiego

"Parse error: parse error, unexpected T_EXIT
in D:\Servery\WebServ\httpd\strony\strefa\strefa2.txt on line 6"

hmm jak postawiłem na koncu ; to wyskauje mi cały czas brak dostepu mimo ze mój adres ip jest wpisany

  1. <?
  2. $dozwolone_ip = array ([b]'192.168.0.1'[/b],'192.168.1.1','192.168.1.2');
  3.  
  4. (!in_array($_SERVER[REMOTE_ADDR],$dozwolone_ip))[b];[/b]
  5.  
  6. die ('Brak dostępu');
  7. ?>


Ten post edytował Cwirek1987 10.06.2007, 14:45:03
Go to the top of the page
+Quote Post
fiszol
post
Post #4





Grupa: Zarejestrowani
Postów: 453
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


192.168.0.1 to wenętrzny adres sieci w której jestes. wildcard w tym wypadku nie zadziała

wpisz do tablicy adres który wyświetli Ci http://whatsmyip.org

Ten post edytował fiszol 9.06.2007, 13:49:32
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

Ostrzeżenie: (10%)
X----


no ok ale na zewnetrznym ip też to nie działa.
Go to the top of the page
+Quote Post
Glarden
post
Post #6





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


Ostatnio zrobiłem kontrolę ze względu na IP opartą na plikach:
index.php
  1. <?php
  2. $ip = $_SERVER["REMOTE_ADDR"];
  3. $kupa = file('ip.txt');
  4. if (in_array ($ip, $kupa)) {
  5. echo ("Wynocha, Twoje ip nie jest mile widziane!");
  6. echo ("<br>Twoje ip: $ip.");
  7. }
  8. else {
  9. echo ("<h1>Witamy na stronie!</h1>");
  10. }
  11. ?>

To jest sama strona. Teraz strona do dodawania IP do listy zablokowanych, dopisz.php:
  1. <?php
  2. if (isset ($_POST['ip'])) {
  3. $ip = $_POST['ip'];
  4. $plik = fopen('ip.txt', 'r+');
  5. $tit = fseek($plik, 0, SEEK_END);
  6. $zapisz = fwrite($plik, "n".$ip."");
  7. fclose($plik);
  8. echo ("Ip zostalo zablokowane!");
  9. echo ("<hr>");
  10. $kupa = file('ip.txt');
  11. print_r($kupa);
  12. }
  13. ?>

I jeszcze do usuwania IP z zablokowanych (trochę amatorsko zrobione, ale nie chciało mi się myśleć):
  1. Odblokuj ip<br>
  2. <form action='odblokuj.php' method='post'>
  3. <select name="odblokuj" size=1>
  4. <?php
  5. $tab = file('ip.txt');
  6. $ile = count($tab);
  7. $n = 0;
  8. while ($n<$ile) {
  9. echo ("<option>".$tab[$n]."</option>");
  10. $n++;
  11. }
  12. ?>
  13. </select>
  14. <input type='submit' value='oblokuj'/>
  15. </form>
  16. <hr>
  17. <?php
  18. if (isset ($_POST['odblokuj'])) {
  19. $ip = $_POST['odblokuj'];
  20. $nazwa = 'ip.txt';
  21. $plik=fopen('ip.txt','r+');
  22. $dane=fread($plik,filesize($nazwa));
  23. $nowy = str_replace ("n".$ip, "", $dane);
  24. $nowy1 = str_replace ($ip."n", "", $nowy);
  25. fclose ($plik);
  26. $plik2 = fopen('ip.txt', 'w');
  27. $zapis = fwrite($plik2, $nowy1);
  28. fclose($plik2);
  29. echo ("Zmiany zapisane.");
  30. }
  31. ?>


Oczywiście musisz mieć jeszcze plik ip.txt w tym samym folderze.
Aha, przed wszystkimi "n" musisz wstawić "\", bo - jak widzę - ucięło i pokazać nie chce.

Ten post edytował Glarden 9.06.2007, 14:58:49
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

Ostrzeżenie: (10%)
X----


Jak dla mnie te index.php działa (tylko w tedy gdy w ip.txt jest podany jeden adres ip jak jest wicej to to nie działa). Odblokuj i zablokuj to jest jakieś dziwne raz że nie działa a dwa skad przy blokowaniu on ma wziąśc adres ip przeciesz nigdze niema zeby wprowadzić adres ip!?

Ten post edytował Cwirek1987 10.06.2007, 15:26:54
Go to the top of the page
+Quote Post
Glarden
post
Post #8





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


Formularza nie wkleiłem, bo myślałem, że każdy jest w stanie sam sobie napisać.
Odblokowanie może Ci nie działać, jeśli nie dodałeś ukośników przed "n". Przecież pisałem, że musisz to zrobić.
Na inne "błędy" nie wiem, jak odpowiedzieć - u mnie wszystko działa bez zarzutu...

Ten post edytował Glarden 10.06.2007, 16:00:29
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

Ostrzeżenie: (10%)
X----


no ok to umie ale nie zmienia faktu ze to nie działa mi jak chce wpisać wicej adresów ip niz 1. doałem przed "n" te "\" pozatym mniejsza o to czy to odblokuj działa czy nie ja chce zeby wicej adresów ip tam było i zeby to działało (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Cwirek1987 10.06.2007, 16:07:25
Go to the top of the page
+Quote Post
szmerak
post
Post #10





Grupa: Zarejestrowani
Postów: 286
Pomógł: 12
Dołączył: 23.11.2006
Skąd: WL

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


Napisałem na szybko skrypcik to powinno rozwiązać twoje problemy! W pliku ip.txt zapisujesz jeden pod drugim ip które chcesz aby wchodziły!
  1. <?
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. $open = file("ip.txt");
  4. foreach($open as $open){
  5. $asd=trim($open);
  6. }
  7. if($asd == $ip){
  8. echo "Możesz wejść";
  9. } else {
  10. echo "Nie możesz";
  11. }
  12.  
  13. ?>
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: 15.09.2025 - 14:59