phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
Przesunięty przez: Matteo
09-11-2013, 09:30
Registration IP Checker
Autor Wiadomość
Quantic


Posty: 13
Wysłany: 08-08-2011, 15: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:
:arrow: 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, 15: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
Wysłany: 08-08-2011, 17:36   

http://pl.wikipedia.org/w...ess_Translation
_________________
Fejs
 
     
Quantic


Posty: 13
Wysłany: 08-08-2011, 18: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, 22:55, w całości zmieniany 1 raz  
 
     
Seba123


Pomógł: 74 razy
Posty: 868
Wysłany: 09-08-2011, 01: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, 12: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, 14: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, 14: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, 15: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, 20: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, 18: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, 17: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?
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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

Skocz do:  

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,03 sekundy. Zapytań do SQL: 13
Polecane serwisy



Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a





phpbb

serwis laptopów

• Zamów reklamę