Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] blokowanie IP, blokowanie całych przedziałów IP od... do...
youare
post 4.02.2011, 02:15:12
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 4.02.2011

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


Witam, znalazłem taki skrypt:
Kod
<?
$ip=file("ban.txt");
foreach($ip as $v){
if(trim($v)==$REMOTE_ADDR){
    echo "Masz bana :P"; break;
}
}
?>


ban.txt

Kod
123.456.789.101
987.654.321.102


Chciałbym mieć możliwość blokowania ip na zasadzie klas, czyli. aby plik ban.txt wyglądał np.123.456.789.*
Gdzie * to dowolna końcówka IP, gdyż chcę zablokować wszystkie IP np od 123.456.789.1 do 123.456.789.255

Ten post edytował youare 4.02.2011, 02:16:02
Go to the top of the page
+Quote Post
Zyx
post 4.02.2011, 07:54:08
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Trzymaj adres IP w postaci binarnej razem z maską: 192.168.0.0/255.255.0.0. Wtedy przynależność do klasy możesz sprawdzić zwykłymi operacjami bitowymi w PHP. Konwersję na postać binarną wykonasz przy pomocy funkcji inet_pton().


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
benio101
post 4.02.2011, 19:10:39
Post #3





Grupa: Zarejestrowani
Postów: 111
Pomógł: 10
Dołączył: 16.07.2009
Skąd: Toruń

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


Cytat(youare @ 4.02.2011, 02:15:12 ) *
od 123.456.789.1 do 123.456.789.255


Chyba do 254?
Go to the top of the page
+Quote Post
lukasz91
post 4.02.2011, 19:17:49
Post #4





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

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


Cytat(benio101 @ 4.02.2011, 19:10:39 ) *
Chyba do 254?

oktet jedynek to 255 w dziesiętnym tongue.gif


--------------------
Go to the top of the page
+Quote Post
benio101
post 4.02.2011, 19:20:52
Post #5





Grupa: Zarejestrowani
Postów: 111
Pomógł: 10
Dołączył: 16.07.2009
Skąd: Toruń

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


Ja tam 254 blokuję zawsze, kanał dla botów, niebezpieczny.
Tak profilaktycznie.
Go to the top of the page
+Quote Post
youare
post 5.02.2011, 04:57:33
Post #6





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 4.02.2011

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


Dziękuję za pomoc i cenne uwagi.
Czy jest jakaś możliwość w PHP, aby zablokować również hosty/domeny np. zablokować każdego kto ma hosta pasującego do reguły *.edu.de

Go to the top of the page
+Quote Post
Zyx
post 5.02.2011, 08:11:31
Post #7





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Tak, tylko musisz pobrać sobie nazwę hosta i później dopasowywać ją przez wyrażenie regularne. Jednak z tego, co czytałem, pobieranie nazwy hosta użytkownika może znacząco spowolnić stronę - w dokumentacji parę osób wypowiadało się, że próba pobrania nieistniejącego hosta trwała ponad 20 sekund.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
kiler129
post 5.02.2011, 08:19:18
Post #8





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


Sprawdzanie hosta jest zbyt powolne na www jak zauważył Zyx. Wiąże się to z tym, że jeśli user nie ma hosta (a bardzo często na klienckich ip nie ma revdns) to zapytanie dolatuje aż do root-dns przez dziesiątki innych dnsów - root mają sporo info ale są wooolneee smile.gif
Reasumując nie warta skóra za wyparwkę - jedynie opłaca się wycinać bloki ip.


--------------------
flexiCMS v2 [|||||||+--] 75% done
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: 9.06.2025 - 04:19