Visualizzazione risultati 1 fino 10 di 10

Discussione: Nascondere ultime cifre di un indirizzo IP

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito Nascondere ultime cifre di un indirizzo IP

    Ehilà,
    salve a tutti! Dopo un mese senza internet torno con una richiesta di aiuto (come sempre ). Ho creato un blog tutto mio in PHP e MySQL ora quando permetto agli utenti di leggere i commenti su uno specifico intervento mi è venuta voglia di mostrare il loro indirizzo IP nascondendo (per privacy) le ultime cifre ma non so come fare...io temporaneamente ho provato così ma non va come devo correggere?

    Codice PHP:
    $ipn = explode(".",$ip);
    $uno = strtr($ipn[2],"0","x");
    $uno .= strtr($ipn[2],"1","x");
    $uno .= strtr($ipn[2],"2","x");
    $uno .= strtr($ipn[2],"3","x");
    $uno .= strtr($ipn[2],"4","x");
    $uno .= strtr($ipn[2],"5","x");
    $uno .= strtr($ipn[2],"6","x");
    $uno .= strtr($ipn[2],"7","x");
    $uno .= strtr($ipn[2],"8","x");
    $uno .= strtr($ipn[2],"9","x");
    $due = strtr($ipn[3],"0","x");
    $due .= strtr($ipn[3],"1","x");
    $due .= strtr($ipn[3],"2","x");
    $due .= strtr($ipn[3],"3","x");
    $due .= strtr($ipn[3],"4","x");
    $due .= strtr($ipn[3],"5","x");
    $due .= strtr($ipn[3],"6","x");
    $due .= strtr($ipn[3],"7","x");
    $due .= strtr($ipn[3],"8","x");
    $due .= strtr($ipn[3],"9","x");
    $ipb = $ipn[0].".".$ipn[1].".".$uno.".".$due;
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    uhm, senza sbattersi a convertire i numeri uno per uno, e per garantire una maggiore anonimità:
    Codice PHP:
    $gruppi = explode('.', $ip);
    $ipxxx = "{$gruppi[0]}.{$gruppi[1]}.xxx.xxx";

    echo
    "Conversione {$ip} -> {$ipxxx}";
    con la tua idea, sarebbe comunque possibile contando le 'x' conoscere il numero di cifre nel gruppo. E se c'è una x sola, si scende a 10 possibilità e si potrebbe indovinare

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Si ci avevo pensato per il fatto che con un po' di tempo o uno script si poteva indovinare le cifre nascoste ma va bene lo stesso...farò come mi hai consigliato tu. Come sempre mi sei stato molto d'aiuto ma vorrei chiederti (se non vado troppo in OT) cosa significano le parentesi quadre che racchiudono una variabile e perchè se, in alcuni casi, le togli non funziona più lo script. E' una cosa che non sono mai riuscito a capire.
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Le quadre servono a scegliere un particolare valore all'interno di un array. Se ti riferisci invece alle parentesi graffe che metto attorno alle variabili nelle stringhe, la spiegazione è in questa sezione sulle stringhe del manuale del php.

    In breve, dentro una stringa delimitata da doppi apici ( " ... " ) sono accettati nomi di variabili come $ciao o $ciao[1], mentre nomi più complessi come $ciao['prova'] o $oggetto->campo non vengono riconosciuti. Per delimitare i nomi complessi si usa la sintassi con le parentesi graffe {...}.

    Nell'esempio sopra è superflua, ma siccome è più leggibile e spesso evita di fare errori introvabili, la uso più o meno ovunque. La pagina citata sopra contiene una marea di esempi che funzionano o non funzionano, con relativa spiegazione - ma metterle sempre non darà mai errore
    Ultima modifica di dreadnaut : 23-07-2008 alle ore 14.03.38

  5. #5
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Si ci avevo pensato per il fatto che con un po' di tempo o uno script si poteva indovinare le cifre nascoste ma va bene lo stesso...farò come mi hai consigliato tu. Come sempre mi sei stato molto d'aiuto ma vorrei chiederti (se non vado troppo in OT) cosa significano le parentesi quadre che racchiudono una variabile e perchè se, in alcuni casi, le togli non funziona più lo script. E' una cosa che non sono mai riuscito a capire.

    una variabile array è un tipo di dato che ha un nome e un indice, ogni indice punta ad una diversa locazione di memoria memorizzata in modo contiguo in un RDA sulla pila di sistema, oppure nella memoria statica dei globali se viene definito li. in alcuni linguaggi bisogna definire prima la grandezza dell'array, cosi durante la compilazione è possibile definire in memoria lo spazio richiesto,questo però ha forma statica, nel senso che se l'array è definito a 1 a n, array[n] sarà l'ultima locazione di memoria utilizzabile per quel nome, e ai suoi valori si accede per offset.
    in altri linguaggi, proprio come in php, il tipo array è dinamico, nel senso che non c'è bisogno di definire inizialmente la grandezza ma questo essendo memorizzato in realtà in una zona della memoria dinamica, denominata heap, ha la possibilità di essere definita a run time la sua grandezza direttamente mediante l'esecuzione del codice stesso e tutto questo è possibile grazie a un descrittore dell'array denominato dope vector e memorizzato anch'esso nella parte fissa della memoria. questo possiede un puntatore alla prima locazione di memoria dell'array(memorizzato sull'heap) e tramite un accesso indiretto grazie ad alcune particolari strutture dati si calcola l'espressione e la si somma alla prima locazione di memoria e si accede all'indice interessato. con queste operazione è posssibile gestire un array dinamico insomma.


    quindi ricapitolando:

    array statico= la dichiarazione ne indica la grandezza (es. Array[1..10]: integer; indica un array in cui puoi memorizzare un max di 10 valori interi)

    Array[1] = valore;
    Array[2] = valore:
    ...
    ...
    Array[9] = valore;
    Array[10] = valore;



    la memoria viene allocata o durante la compilazione o a run time se è un linguaggio interpretato nel momento in cui lo scanner controlla la giusta sintassi della dichiarazione dell'array, comunque il range rimane fisso fino alla fine dell'esecuzione del programma.
    quindi in questo caso se facessi un Array[11] = valore; avrei un errore perchè stò superando il range consentito che va da 1 a 10.



    per la forma dinamica non hai bisogno di definire tutto questo, proprio per le motivazioni su descritte, quindi in php puoi utilizzare gli array senza avere il problema di definire la grandezza di questo e essendo un linguaggio non tipicizzato non hai bisogno di definire neppure il tipo.


    quindi un array è un tipo di dato che possiede un nome che ne definisce l'ambiente e un indice che ne definisce la locazione di memoria.

    es:
    array[1]="ciao";
    array[2]="pluto";

    queste praticamente è una variabile di tipo array che ha due valori memorizzati in modo contiguo sull'heap.


    spero di essere stato abbastanza chiaro anche se te ne ho parlato in forma didattica.

    ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    occhio che la sintassi usata nella esaustiva spiegazione sopra non è quella del php

  7. #7
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    occhio che la sintassi usata nella esaustiva spiegazione sopra non è quella del php
    potresti dirmi quale parte?
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    cose tipo Array[1..10]: integer;, la mancanza di $ davanti ai nomi delle variabili, ed il concetto stesso di array statico, che in php non esiste. La spiegazione è ottima, ma non essendo prettamente legata al php non vorrei fuoriviasse il già abbastanza fuorviato-dentro Miki92
    Ultima modifica di dreadnaut : 23-07-2008 alle ore 15.51.15

  9. #9
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    cose tipo Array[1..10]: integer;, la mancanza di $ davanti ai nomi delle variabili, ed il concetto stesso di array statico, che in php non esiste. La spiegazione è ottima, ma non essendo prettamente legata al php non vorrei fuoriviasse il già abbastanza fuorviato-dentro Miki92

    ops, non era mio scopo essere troppo off topic.
    il fatto è che volevo essere il più generale possibile dato che miky92 ha chiesto a cosa servono le parentesi quadre.
    poi anche per questo ho anticipato dicendo prima di tutto che il php è dinamico, e poi in altre frasi ho aggiunto che non è neanche un linguaggio tipicizzato, quindi la definizione di array[1..n]: integer voleva significare che stavo parlando di un array statico in quel momento

    vabbè, comunque spero che a qualcuno chiarisca un pò le idee, e non gliele confonda del tutto
    ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Grazie delle spiegazioni e sopratutto grazie del link dreadnaut molto utile
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

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