Visualizzazione risultati 1 fino 9 di 9

Discussione: Un range di IP: come comprenderlo in php?

  1. #1
    Guest

    Predefinito Un range di IP: come comprenderlo in php?

    Ciao a tutti

    Volevo fare un esperimento: volevo creare una pagina, che se qualcuno la visitava gli veniva fuori IP e città.

    Ci sono riuscito, però come posso far comprendere il range di un ip?
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="AlterVista - Editor HTML">
    <TITLE></TITLE>
    </HEAD>
    <BODY>

    <?php echo $ip = getenv("REMOTE_ADDR");

    if ($ip == '82.55.*'){
    echo("<font face=verdana size=2>Firenze, IT.</font><br>");
    }

    ?>


    </BODY>
    </HTML>
    Dove c'è il grassetto, qual'è il codice giusto da mettere per far comprendere il range di indirizzi ip 82.55.0.0-82.55.255.255? (Spero di essermi spiegato bene )

  2. #2
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    Codice PHP:
    <?
    if(strpos($ip,'82.55.')==0){
    echo
    'Ciao';
    }
    ?>
    non so se vada, ma la funzione da usare è quella XD

  3. #3
    Guest

    Predefinito

    E se salvi l'ip in un file e fai una cosa del genere:
    Codice PHP:
    <?php
    $ip
    = $_SERVER['REMOTE_ADDR'];
    $file = file_get_contents("ip.txt");
    $fp = fopen("ip.txt","w+");
    fwrite($fp,$ip);
    fclose($fp);
    if(
    ereg('82.55',$file)) {
    echo
    "<font face=\"verdana\" size=\"2\">Firenze, IT.</font><br>";
    }
    ?>
    Ultima modifica di nokiagames : 29-01-2009 alle ore 18.59.43

  4. #4
    Guest

    Predefinito

    Funziona, però ho messo più di un ip e mi viene solo il risultato del primo:

    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="AlterVista - Editor HTML">
    <TITLE>Geolocator</TITLE>
    </HEAD>
    <BODY>

    <?php $ip = getenv("REMOTE_ADDR");

    if(strpos($ip,'7.57.')==0){
    echo 'Peschiera del Garda ,IT';
    }

    else if(strpos($ip,'82.51.')==0){
    echo 'Firenze, IT';
    }

    ?>



    </BODY>
    </HTML>
    dove sbaglio qui?

  5. #5
    Guest

    Predefinito

    Dubbio, else if non deve essere elseif? Magari è una piccolezza ma non lo so

  6. #6
    Guest

    Predefinito

    in teoria quando usi un if con strpos è inutile mettere elseif basta un semplice if

  7. #7
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Salve,

    sono anche io interessato a questo argomento, che si dovrebbe chiamare geolocalizzazione.

    Avete qualche script riguardo a questo argomento?




    Grazie,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  8. #8
    Guest

    Predefinito

    E' sbagliato l'if.
    strpos, restituisce la posizione numerica del primo carattere della sottostringa contenuta all'interno di stringa.
    Però, nel caso in cui la posizione del primo carettere del secondo parametro (sottostringa) è zero (quindi sta all'inzio) strpos restituisce zero (ovvio) il problema sta però nel fatto che strpos restituisce false nel caso in cui non ci sia la stringa. Dato che per php 0 è false sono la stessa cosa (se non trattati come si deve) quegli if sono sempre veri. Ciò significa che viene processato solo il primo (per come è costruito il codice).
    Bisogna quindi usare === non ==. La differenza sta nel fatto che === controlla, oltre al valore, anche il tipo. Mentre == controlla solo il valore (e in quel contesto false e 0 sono la stessa cosa per l'==). In parole povere, sostituisci il codice così
    Codice PHP:
    <?php $ip = getenv("REMOTE_ADDR");

    if(
    strpos($ip,'7.57.')===0){
    echo
    'Peschiera del Garda ,IT';
    }

    else if(
    strpos($ip,'82.51.')===0){
    echo
    'Firenze, IT';
    }

    ?>

  9. #9
    Guest

    Predefinito

    Una curiosità, come si fa a capire quale range di ip viene da quale localizzazione?
    Inoltre, c'è la possibilità che un pc per connettersi ad internet (come il mio) va a cercare un server remoto. Ecco io che sto a firenze ho ip 93.149 quindi questo ip indica l'ubricazione del server, non del mio pc, giusto?

Regole di scrittura

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