|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Przesunięty przez: Matteo 09-11-2013, 09:30 |
Registration IP Checker |
Autor |
Wiadomość |
Quantic
Posty: 13
|
Wysłany: 08-08-2011, 14:20 Registration IP Checker
|
|
|
Widziałem w propozycjach duże zainteresowanie taką modyfikacją, więc postanowiłem ją napisać.
Kod: | ##############################################################
## MOD Title: Registration IP Checker
## MOD Author: Quantic < xyloxer@gmail.com > http://forum.skinscripts.pl/quantic,u,1984.htm
## MOD Description: Registration IP Checker uniemożliwia tworzenie multikont. Modyfikacja blokuje rejestrację nowych kont poprzez porównanie adresu IP osoby, która właśnie próbuje się zarejestrować, ze wszystkimi adresami IP użytkowników z bazy danych. Dodatkowo jest zabezpieczenie, które wykrywa niektóre rodzaje proxy. Dynamiczne IP Neostrady, kóre zaczyna się liczbą 83 specjalnie nie jest blokowane przez modyfikację. Nie miałoby to sensu, bo wystarczyłoby ponownie połączyć się z Internetem, a blokowałoby to niepotrzebnie adresy. Modyfikacja jest napisana w języku polskim i angielskim.
## MOD Version: 1.0.0
##
## Installation Level: Easy
## Installation Time: ~3 minutes
## Files To Edit: (3)
## includes/usercp_register.php
## language/lang_polish/lang_profile.php
## language/lang_english/lang_profile.php
##
## License: Ten plik udostępniony jest na licencji Creative Commons Uznanie autorstwa
## - Na tych samych warunkach 3.0
## http://creativecommons.org/licenses/by-sa/3.0/deed.pl
##############################################################
## Author Notes:
## Zaleca się zrobienie kopii plików, które trzeba edytować.
############################################################## |
Co modyfikacja potrafi:
Blokuje rejestrację dla osoby, której IP jest już w bazie danych.
Instrukcja: Instrukcja w archiwum RAR.
License:
Ten plik udostępniony jest na licencji Creative Commons Uznanie autorstwa – Na tych samych warunkach 3.0 |
Ostatnio zmieniony przez MaTeK_ 11-01-2012, 18:36, w całości zmieniany 2 razy |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
maminowiec
Pomógł: 551 razy Posty: 1729
|
Wysłany: 08-08-2011, 14:27
|
|
|
A jak ktoś ma sieciówke i to samo IP ? mod powinien rejestrować i wysyłać powiadomienie do admina. |
_________________ Ebooki do pobrania |
|
|
|
|
Seba123
Pomógł: 74 razy Posty: 868
|
|
|
|
|
Quantic
Posty: 13
|
Wysłany: 08-08-2011, 17:03
|
|
|
Podobnie jest z banowaniem. Jeśli się zbanuje konto, które jest z NAT-u to reszta kont z tej sieci też ma bana. Taka jest wada NAT-u. Jednak w modyfikacji można wykluczyć poszczególne numery IP (tak samo jak wykluczony jest zakres 83.*.*.*).
A jeśli ktoś chce, aby takie konta się rejestrowały, a następnie wysyłane byłoby powiadomienie na maila administratora to wystarczy zamienić tę linijkę:
Kod: | message_die(GENERAL_MESSAGE, $lang['ip_used'], '', __LINE__, __FILE__); |
na funkcję mail()
i przesunąć cały kod (bez warunku - if ($mode == 'register')) pod tę linijkę:
Kod: | message_die(GENERAL_MESSAGE, $welcome_message); |
@down: Podpis usunięty. |
Ostatnio zmieniony przez Quantic 08-08-2011, 21:55, w całości zmieniany 1 raz |
|
|
|
|
Seba123
Pomógł: 74 razy Posty: 868
|
Wysłany: 09-08-2011, 00:50
|
|
|
Quantic napisał/a: | 83.*.*.*) | A czemu te 16777214 adresów IP ma jakiś specjalny przywilej ? |
_________________ Fejs |
|
|
|
|
Quantic
Posty: 13
|
Wysłany: 09-08-2011, 11:24
|
|
|
Cytat: | Dynamiczne IP Neostrady, kóre zaczyna się liczbą 83 specjalnie nie jest blokowane przez modyfikację. Nie miałoby to sensu, bo wystarczyłoby ponownie połączyć się z Internetem, a blokowałoby to niepotrzebnie adresy. |
|
|
|
|
|
Seba123
Pomógł: 74 razy Posty: 868
|
Wysłany: 09-08-2011, 13:10
|
|
|
To pragnę Cię poinformować, że zakres adresów IP Neostrady wynosi od 83.1 do 83.31, mając na uwadze ten fakt iż nie wszystkie adresy z powyższej puli są zmienne.
Dodatkowo zapomniałeś jeszcze o wielu innych zakresach Neostrady oraz innych operatorach ADSL, prze co owe sprawdzanie jest po prostu bezsensowne.
Dużo lepszy sposobem wykrycia dynamicznego adresu IP (o ile na serwer WWW jest włączona usługa HostnameLookups) będzie następujący kod Kod: | if(strpos($_SERVER['REMOTE_HOST'], 'adsl') !== FALSE)
{
// dynamiczny adres IP
} |
|
_________________ Fejs |
|
|
|
|
Quantic
Posty: 13
|
Wysłany: 09-08-2011, 13:30
|
|
|
Hmm. Dzięki. Przydatny kod.
Z tym, że musi być włączona ta funkcja: HostnameLookups. Staram się, aby kod był jak najbardziej uniwersalny. Jednak kod, który podałeś jest chyba dobrym rozwiązaniem, bo nie ma sposobu, aby wykluczyć wszystkie dynamiczne adresy IP, podając ich zakres. Ja podałem ten zakres, który jest (tak myślę) najpopularniejszy. W takim razie najlepiej wykluczyć od 83.1 do 83.31(wiem, że nie wszystkie są dynamiczne, ale trzeba by wiedzieć, które są, więc chyba najlepiej tak zostawić), bo innych dynamicznych adresów nie znam.
Edit:
Jeśli funkcja "HostnameLookups" jest popularna to myślę, że to całkiem dobre rozwiązanie. Jednak nie wiem ile serwerów ma włączoną tę funkcję. |
|
|
|
|
Seba123
Pomógł: 74 razy Posty: 868
|
Wysłany: 09-08-2011, 14:40
|
|
|
Można to sprawdzić prostym kodem PHP Kod: | <?php echo $_SERVER['REMOTE_HOST']; ?> |
Więcej informacji tu -> http://php.net/manual/en/...bles.server.php & http://www.php.net/manual...thostbyaddr.php
[ Dodano: 09-08-2011, 16:06 ]
Jednakże na myśl przychodzi mi jeszcze kwestia problematycznych serwerów DNS, przez co można zauważyć zwolnienia witryny, bądź kompletne zatrzymanie rejestracji (wczytująca się strona).
Rozwiązaniem może być użycie funkcji zaproponowanej przez jednego z użytkowników oraz OpenDNS
A to tylko jedno z wielu rozwiązań
PS. Co do hostname lookups - funkcja gethostbyaddr chyba nie ma tego ograniczenia, aczkolwiek problem mogą tworzyć serwery DNS, gdyż domyślnie ta opcja nie ma opcji timeout'u |
_________________ Fejs |
|
|
|
|
Quantic
Posty: 13
|
Wysłany: 09-08-2011, 19:16
|
|
|
$_SERVER['REMOTE_HOST']; - ten kod na moim serwerze nie działa
gethostbyaddr() - ten działa, ale może wystąpić problem z timeout
gethostbyaddr_timeout() - funkcja byłaby dobra, gdyby zwracała nazwę hosta, a nie adres IP
Jak na razie chyba najlepszym rozwiązaniem będzie zastosowanie funkcji gethostbyaddr()
Kod: | $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if(strpos($host, 'adsl') !== FALSE) {
...
} |
i dla tych, którzy mają słabe DNSy, moje pierwsze rozwiązanie. Chyba, że ktoś ma inny pomysł? |
|
|
|
|
piootrek16
Pomógł: 5 razy Posty: 171
|
Wysłany: 12-08-2011, 17:30
|
|
|
Fajnie jeśli ta modyfikacja będzie kontynuowana i ulepszana, a na pewno będę z niej korzystał. |
|
|
|
|
Quantic
Posty: 13
|
Wysłany: 13-08-2011, 16:29
|
|
|
Jasne, że będzie. Dobrze byłoby, gdybyście pisali tu swoje pomysły. |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
Azuel
Pomógł: 1 raz Posty: 69
|
Wysłany: 30-12-2012, 21:59
|
|
|
A czy nie szłoby przerobić tej modyfikacji na trochę dokładniejszą?
Otóż nie wiem jakim kosztem i czy jest w ogóle taka możliwość.
Powiedzmy że jak użytkownik loguje się na forum, to dodaje mu się do ciasteczek przeglądarki jakiś standardowy kod(formułka) witryny który zapisze się w ciasteczkach na stałe, oczywiście aby był możliwy do zmiany w późniejszym czasie żeby nie był taki sam na wszystkich stronach z forum Przema.
Następnie gdzieś w bazie danych zostanie zapisane IP użytkownika do tego sprawdzenia że użytkownikowi o taki adresie IP zostało zapisane takie cookie.
Dodatkowo Jakaś rubryka na forum która wychwyci konta sprawdzając IP oraz czy już na to IP było zapisane cookies. (Ktoś mądry napewno ma sposób) No i zapisanie ich w jakiś panel w PA.
Tak żeby Administrator forum widział kto jest z tego samego IP i tego samego komputera logowany na forum, bo czasem zdarza się że bracia z jednego kompa wejdą, żeby była możliwość wyjaśnić a nie od razu blokować takie IP.
Mam taki ewenement na forum gdzie trzech użytkowników ma takie samo IP a dwoje z nich rzekomo mieszkają w Warszawie i Krakowie bo trzeci miasta nie podał, i chcę w jakiś sposób sprawdzić czy
nie jest to Multikonto.
Mógłbym się co prawda opierać na dwóch różnych miastach bo to już jest dowód, ale kto ma te multikonto czy Użytkownik1 czy Uzytkownik2 który nie ma wpisanego miasta.
Jest taka możliwość stworzenia lub napisania takiej modyfikacji / skryptu? |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,07 sekundy. Zapytań do SQL: 13 | |
|
|