Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] blokowanie IP
Forum PHP.pl > Forum > PHP
youare
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
Zyx
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().
benio101
Cytat(youare @ 4.02.2011, 02:15:12 ) *
od 123.456.789.1 do 123.456.789.255


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

oktet jedynek to 255 w dziesiętnym tongue.gif
benio101
Ja tam 254 blokuję zawsze, kanał dla botów, niebezpieczny.
Tak profilaktycznie.
youare
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

Zyx
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.
kiler129
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.
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.