Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    14

    Blocco IP con un "semplice" script

    ho preso questo da fsf
    serve a bloccare la visita del sito ad alcuni ip presenti in un database
    non riesco a far funzionare lo script.

    mi potreste aiutare per favore mi serve per bloccare una marea di spammers dal mio sito!

    grazie!!

    alessandro


    codice:
    <% 
    ip_utente = Request.ServerVariables("REMOTE_ADDR")
    userhost = Request.ServerVariables("REMOTE_HOST")
    'controllo se il tuo ip è inserito all'interno del db
    
    
    servf = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/mdb-database/blocca_ip.mdb")
    set rec = server.createobject("ADODB.Recordset")
    
    sql = "select ip from tbl_ip_lista where ip ='" & ip_utente & "'"
    
    
    ipin = "N"
    %>
    
    
    <font size="2" color="#008000">Your IP address is:</font><font color="#008000" size="6"><%Response.Write(ip_utente)%>
    </font>
    
    <font color="#008000" size="2">l'ipin è:<%Response.Write(ipin)%>
    </font></p>
    <% 
    ipin = "N"
    
    
    
    rec.Open sql, servf
    if rec.eof then
    ipin = "Y"
    end if
    rec.close
    %>
    
    
    
    
    <%
    'se l'ip è nel database allora:
    if ipin <> "Y" then
    Response.Status = "403 Access Forbidden"
    Response.Write Response.Status
    Response.End
    End If
    %>

  2. #2
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    codice:
    rec.Open sql, servf
    if not rec.eof then
       ipin = "Y"
    end if
    rec.close
    NOT rec.eof

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    14
    se metto il NOT esclude tutti indistintamente!!

    poi volevo che nel database ci foosse la lista di IP che non sono ammessi. Ci sono delle Black lists di Ip molto grandi su internet e sto usando una di queste modificata da me di volta in volta che qualche altro spammers prova ad accedere al database.

    ma come può essere....

    vi prego aiutatemi..

    alessandro

  4. #4
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    ma come? Se metti il valore Y alla variabile ipin significa che l'indirizzo ip è presente nel database... quindi va escluso...
    E ipin lo poni a Y nel momento in cui rs è a EOF??? In pratica quando non trova nulla? Quello che hai fatto tu è vietare l'accesso a chi non è presente nel database. Il contrario, che è quello che ho fatto io, esclude soltanto quando rs NON sarà EOF ovvero quando ha trovato l'indirizzo ip.

    E' tanto semplice quel codice...
    Ma poi, che black list e black list... gli indirizzi ip se non statici (la maggioranza) cambiano in continuazione... mettendo quel controllo non fai altro che creare problemi a persone che di spammer non hanno nulla.

  5. #5
    usa nei form dei controlli con l'inserimento di un codice di sicurezza ed elimini sta storia dell'ip.
    Io l'ho provata per un paio di mesi ma non ho risolto niente, ho cambiato ed ho usato il sistema del codice di controllo CAPTCHA. Finito lo spam.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    14

    RISOLTOOOOO

    HO risolto!!!!!

    in pratica richiamavo lo stesso codice da due parti (sono un ignorante in materia scusate.)

    alla fine ho messo il codice originale (vedi sotto) e tutto funziona alla meraviglia

    in pratica se il tuo ip è presente nella lista non puoi accedere, lo so che non è molto contro gli spammers ma nel database ci sono tutti i proxy pubblici e circa 173000 ip, questo rende il tutto abbastanza efficace!

    grazie a tutti per l'aiuto, spero un giorno di essere abbastanza competente da ricambiare!
    alessandro


    codice:
    <% 
    ip_utente = Request.ServerVariables("REMOTE_ADDR")
    userhost = Request.ServerVariables("REMOTE_HOST")
    'controllo se il tuo ip è inserito all'interno del db
    
    servf = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/mdb-database/blocca_ip.mdb")
    set rec = server.createobject("ADODB.Recordset")
    
    sql = "select ip from tbl_ip_lista where ip ='" & ip_utente & "'"
    
    rec.Open sql, servf
    if rec.eof then
    ipin = "Y"
    end if
    rec.close
    %>
    
    <%
    'se l'ip è nel database allora:
    if ipin <> "Y" then
    Response.Status = "403 Access Forbidden"
    Response.Write Response.Status
    Response.End
    End If
    %>

  7. #7
    Ripeto, per me il sistema non vale; almeno a me non ha risolto niente

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    14
    hi ragione, la cosa è senza speranza, mi sono deciso ad implementare un CAPTCHA e ne ho trovato uno molto bello, ho qualche piccola difficoltà e aprirò un'altro thread a parte, grazie a tutti per il magnifico supporto.

    Alessandro

  9. #9
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    codice:
    sql = "select ip from tbl_ip_lista where ip ='" & ip_utente & "'"
    
    rec.Open sql, servf
    
    If rec.EOF then
       ipin = "Y"
    End if
    rec.Close
    %>
    
    <%
    'se l'ip è nel database allora:
    If ipin <> "Y" then
       Response.Status = "403 Access Forbidden"
       Response.Write Response.Status
       Response.End
    End If
    %>
    Tu mi devi spiegare come fa a funzionare correttamente se nella situazione di EOF dopo aver eseguito la query, blocchi l'accesso...

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    14
    Funziona anche il tuo,

    nel mio caso funziona perchè la lista di Ip nel database è la lista di ip da bloccare, quindi se l'ip di chi accede alla pagina è presente nel database allora la risposta è "access forbidden"
    il database ha circa 170000 records e ancora non basta, sto implementando la cosa insieme a un CAPTCHA in modo da avere ambedue i controlli conemporaneamente...


    Alessandro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.