Visualizzazione risultati 1 fino 4 di 4

Discussione: Sistema ban ip

  1. #1
    Guest

    Question Sistema ban ip

    Salve a tutti, vi espongo subito il mio problema: ero in cerca di un sistema che potesse rilevarmi gli ip e girovagando su internet ho trovato questo:

    Codice PHP:
    <?php

    class UserBan
    {
    public function
    get_ip_address() {
    // check for shared internet/ISP IP
    if (!empty($_SERVER['HTTP_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_CLIENT_IP']))
    return
    $_SERVER['HTTP_CLIENT_IP'];

    // check for IPs passing through proxies
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    // check if multiple ips exist in var
    $iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    foreach (
    $iplist as $ip) {
    if (
    $this->validate_ip($ip))
    return
    $ip;
    }
    }
    if (!empty(
    $_SERVER['HTTP_X_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_X_FORWARDED']))
    return
    $_SERVER['HTTP_X_FORWARDED'];
    if (!empty(
    $_SERVER['HTTP_X_CLUSTER_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
    return
    $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
    if (!empty(
    $_SERVER['HTTP_FORWARDED_FOR']) && $this->validate_ip($_SERVER['HTTP_FORWARDED_FOR']))
    return
    $_SERVER['HTTP_FORWARDED_FOR'];
    if (!empty(
    $_SERVER['HTTP_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_FORWARDED']))
    return
    $_SERVER['HTTP_FORWARDED'];

    // return unreliable ip since all else failed
    return $_SERVER['REMOTE_ADDR'];
    }

    /**
    * Ensures an ip address is both a valid IP and does not fall within
    * a private network range.
    *
    * @access public
    * @param string $ip
    */
    public function validate_ip($ip) {
    if (
    filter_var($ip, FILTER_VALIDATE_IP,
    FILTER_FLAG_IPV4 |
    FILTER_FLAG_IPV6 |
    FILTER_FLAG_NO_PRIV_RANGE |
    FILTER_FLAG_NO_RES_RANGE) === false)
    return
    false;
    self::$ip = $ip;
    return
    true;
    }
    }
    ?>
    qualcuno potrebbe spiegarmelo brevemente gentilmente? Leggendo i commenti della pagina da cui l'ho preso ho letto che è un metodo abbastanza sicuro per identificare gli ip nonostante vengano usati proxy etc ma non mi è molto chiaro come usarlo non conoscendo bene le funzioni che ci sono
    Ultima modifica di gbtchiaravalle : 17-08-2013 alle ore 02.30.00

  2. #2
    politigraph non è connesso Neofita
    Data registrazione
    24-06-2013
    Messaggi
    8

    Predefinito

    È molto semplice: questa è una classe php composta di due funzioni, di cui di fatto l'unica che ti interessa è la prima, ossia get_ip_address.
    Questa funzione non fa altro che controllare tutti le variabili a disposizione che dovrebbero contenere l'indirizzo ip dell'utente, e, a partire da quella considerata più affidabile, verifica che rappresentino degli indirizzi reali grazie alla funzione validate_ip.
    In pratica, per ottenere l'indirizzo ip dell'utente devi utilizzare un codice del genere:
    Codice PHP:
    $tmp = new UserBan();
    $ip = $tmp->get_ip_address();
    Dove in $ip hai l'indirizzo ip più sicuro che si possa ottenere con php.
    Se mi permetti un consiglio, però, tutta questa sicurezza è, per un sito medio, decisamente eccessiva: se non hai particolari esigenze ti consiglio di utilizzare un semplicissimo

    $ip = $_SERVER["REMOTE_ADDR"];

    Spero di esserti stato utile! ;)

  3. #3
    Guest

    Predefinito

    Grazie mille, sei stato gentilissimo!

  4. #4
    Guest

    Predefinito

    scusate sono un utente nuovo sono salvino vorrei chiedervi dove inserire il codice scritto qui sopra del ban grazie mille

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •