Visualizzazione risultati 1 fino 5 di 5

Discussione: sistema efficace di ban

  1. #1
    Guest

    Question sistema efficace di ban

    ho trovato un sistema di ban o di controllo degli accessi molto efficace ma non so come potrei riprodurlo...
    praticamente per controllare se sei già entrato oppure se sei stato bannato non utilizza l'ip (molte volte infatti basta riconnettersi e cambia) e neanche i cookie... credo di aver capito che legge i componenti della macchina e se li trova uguali a queli che ha registrato se ne accorge.
    per esempio l'ho trovata questa cosa anche su www.ivideochat.com
    c'è un qualche sistema per farlo in php?
    vorrei tutelarmi dallo spam nel guestbook...

    grazie mille

  2. #2
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    se non utilizzi ip ne cookie non vedo altri modi...

    "leggere componenti della macchina" mi suona come una di quelle cose bacate di internet explorer... mah...
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  3. #3
    L'avatar di radioradianti
    radioradianti non è connesso Utente storico
    Data registrazione
    26-11-2003
    Residenza
    Roma
    Messaggi
    1,000

    Predefinito

    In teoria il mac address non dovrebbe cambiare, anche se effettivametne ci sono programma che ti permettono di modificare proprio questo indirizzo.

    Riuscendo a recuperare il mac address di una scheda, saresti sicuro del ban.

    questo è un codice che ho trovato googlando, che potrebbe fare al caso tuo.
    Soltanto che devi essere root per eseguire una serie di comandi.
    Può comunque essere una base di partenza, magari trovi il modo di aggirare il problema utilzzando funzioni differenti.

    Codice PHP:
    <?php
    function returnMacAddress() {
    // This code is under the GNU Public Licence
    // Written by michael_stankiewicz {don't spam} at yahoo {no spam} dot com
    // Tested only on linux, please report bugs

    // WARNING: the commands 'which' and 'arp' should be executable
    // by the apache user; on most linux boxes the default configuration
    // should work fine

    // Get the arp executable path
    $location = `/usr/bin/which /bin/arp`;
    // Execute the arp command and store the output in $arpTable
    $arpTable = `$location`;
    // Split the output so every line is an entry of the $arpSplitted array
    $arpSplitted = split("\n",$arpTable);
    // Get the remote ip address (the ip address of the client, the browser)
    $remoteIp = $GLOBALS['REMOTE_ADDR'];
    // Cicle the array to find the match with the remote ip address
    foreach ($arpSplitted as $value) {
    // Split every arp line, this is done in case the format of the arp
    // command output is a bit different than expected
    $valueSplitted = split(" ",$value);
    foreach (
    $valueSplitted as $spLine) {
    if (
    preg_match("/$remoteIp/",$spLine)) {
    $ipFound = true;
    }
    // The ip address has been found, now rescan all the string
    // to get the mac address
    if ($ipFound) {
    // Rescan all the string, in case the mac address, in the string
    // returned by arp, comes before the ip address
    // (you know, Murphy's laws)
    reset($valueSplitted);
    foreach (
    $valueSplitted as $spLine) {
    if (
    preg_match("/[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f]/i",$spLine)) {
    return
    $spLine;
    }
    }
    }
    $ipFound = false;
    }
    }
    return
    false;
    }


    $mac = returnMacAddress();
    echo
    $mac;
    ?>
    Ciao

    Leandro

    Happy Slack!

    E' on line il numero 12 di Topolinux - Totalmente rinnovato!
    TopoLinux è anche chat! irc.azzurra.org canale #topolinux
    La semplicità di questo dono è inversamente proporzionale alla qualità della nostra amicizia

  4. #4
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    uhm...

    non so se il codice che hai postato li sopra funziona...

    nel mio caso pur avendo:
    Codice:
    [root@titan root]# netstat | wc -l
        127
    il risultato è:
    Codice:
    [root@titan root]# /sbin/arp
    Address                  HWtype  HWaddress           Flags Mask            Iface
    ev1s-216-127-68-1.ev1se  ether   00:E0:52:0E:81:**   C                     eth0
    ritorna il mac-address dell'ultimo "apparecchio fisico" collegato al mia interfaccia ethernet... non quello di ogni sorgente che mi contatta...

    anche se fosse possibile: io a casa mia ho un router che esce su internet... ma i pc che sono connessi al router hanno ognuno il loro mac-address per ogni scheda di rete... nel caso specifico dovrebbe essere rilevato il mac del router o quello dei pc interni alla rete?

    e poi sul router (non l'ho mai usato ma ho visto che c'è):
    Codice:
    firebox(config-if)#mac-address ?
      H.H.H  MAC address
    mac-address Manually set interface MAC address

    mah :)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  5. #5
    Guest

    Predefinito

    oddio che casino, meglio lasciar perdere... speravo ci fosse qualcosa di più semplice... cmq grazie dell'interessamento...

Regole di scrittura

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