Torna indietro   AlterVista | Spazio web gratis, hosting free php mysql > L'angolo del webmaster > PHP, MySql e Apache (.htaccess)

Rispondi
 
LinkBack Strumenti discussione Modalità visualizzazione
  #1 (permalink)  
Vecchio 29-01-2009, 16.25.58
L'avatar di simonecerundolo
Utente
 
Data registrazione: 15-05-2008
Residenza: Castelfanco di Sotto (Pisa)
Messaggi: 116
Invia un messaggio via MSN a simonecerundolo Manda un messaggio tramite Skype™ a simonecerundolo
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?
Citazione:
<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 )
__________________
Riparte il sito
Rispondi citando
  #2 (permalink)  
Vecchio 29-01-2009, 16.28.36
L'avatar di matt93
Utente
 
Data registrazione: 01-09-2008
Messaggi: 236
Manda un messaggio tramite Skype™ a matt93
Predefinito

Codice PHP:
<?
if(strpos($ip,'82.55.')==0){
echo 
'Ciao';
}
?>
non so se vada, ma la funzione da usare è quella XD
__________________
Rispondi citando
  #3 (permalink)  
Vecchio 29-01-2009, 16.57.27
Guest
 
Messaggi: n/a
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 16.59.43
Rispondi citando
  #4 (permalink)  
Vecchio 29-01-2009, 17.18.09
L'avatar di simonecerundolo
Utente
 
Data registrazione: 15-05-2008
Residenza: Castelfanco di Sotto (Pisa)
Messaggi: 116
Invia un messaggio via MSN a simonecerundolo Manda un messaggio tramite Skype™ a simonecerundolo
Predefinito

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

Citazione:
<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?
__________________
Riparte il sito
Rispondi citando
  #5 (permalink)  
Vecchio 29-01-2009, 17.19.05
L'avatar di biccheddu
AlterGuru 2500
 
Data registrazione: 18-01-2009
Residenza: Sant'Antioco
Messaggi: 2,754
Invia un messaggio via Yahoo a biccheddu Manda un messaggio tramite Skype™ a biccheddu
Predefinito

Dubbio, else if non deve essere elseif? Magari è una piccolezza ma non lo so
__________________
Rispondi citando
  #6 (permalink)  
Vecchio 29-01-2009, 18.28.50
Utente attivo
 
Data registrazione: 04-11-2008
Residenza: Lodi
Messaggi: 353
Predefinito

in teoria quando usi un if con strpos è inutile mettere elseif basta un semplice if
Rispondi citando
  #7 (permalink)  
Vecchio 29-01-2009, 19.57.53
L'avatar di foreach
Utente attivo
 
Data registrazione: 10-06-2008
Residenza: Effnerplatz, München
Messaggi: 409
Manda un messaggio tramite Skype™ a foreach
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($arr as $ch => $val) {
echo 
"Ciao";

Rispondi citando
  #8 (permalink)  
Vecchio 29-01-2009, 20.22.15
L'avatar di stoner
AlterVistiano
 
Data registrazione: 30-07-2008
Residenza: Roma
Messaggi: 841
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';
}

?>
__________________

Un giorno la paura bussò alla porta, il coraggio andò ad aprire e non c’era nessuno…

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa.
Rispondi citando
  #9 (permalink)  
Vecchio 31-01-2009, 13.01.23
L'avatar di gabryhacker
AlterVistiano
 
Data registrazione: 11-02-2008
Messaggi: 976
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?
__________________

Citazione:
Originalmente inviato da svacant Visualizza messaggio
La vera ricchezza di un'azienda sono i dati che possiede.
Rispondi citando
Rispondi

Strumenti discussione
Modalità visualizzazione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Disattivato



Tutti gli orari sono GMT +1. Adesso sono le 06.42.24.