Spedire il mio ip di casa, ogni 10 minuti sul mio db che ho su altervista.

  • Creatore Discussione Creatore Discussione Trapano
  • Data di inizio Data di inizio

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Ciao a tutti. Non so se è il posto giusto, ero indeciso...
Ho bisogno di accedere ad un mio pc di casa (sempre acceso), da esterno.
Per ora, mi arriva ad ogni cambio di ip (perché dinamico) l'indirizzo nuovo. Io copio e incollo quello e accedo.
Ma come, se possibile, si potrebbe spedire in automatico, ogni 10 minuti oppure sarebbe meglio ad ogni cambio di ip, l'indirizzo nuovo direttamente al mio db che ho su altrervista?
Ho cercato siti che offrono ip statico, ma gratuitamente o in italiano non ne ho trovati e poi preferirei per soddisfazione personale fare tutto con roba mia..
Grazie.
 
Continuo la spiegazione così forse sarà più chiara...
Riuscendo a inserire in automatico ad ogni cambio, l'IP di casa mia, porte accedere da una mia pagina su altervista che va a prendere l'indirizzo dal mio db, ok?
 
aggiornamenti...
Ho fatto questa pagina che invia l'ip al db...
PHP:
<?php
include ("p1.php");  
include ("p2.php");  

if(isset($_POST['mod'])){  
	
    $id=$_POST['id'];  
    $indir = $_POST['indir'];
       
 $q="UPDATE indip SET indir='$indir' WHERE ID='1'";  
    $ris=mysql_query($q);  
    echo "record $id ok";    
      
}  
  
if(isset($_GET['mod'])){  
    $id=addslashes(htmlspecialchars($_GET['mod']));
    $q="SELECT * FROM indip  WHERE ID='$id'";  
    $ris=mysql_query($q);  
    $riga=mysql_fetch_array($ris);     
    $id=$riga['id'];
    $indir=$riga['indir'];
       
} 
?>
<form action="questapagina.php" method="post" name="mod">
<input name="id" type="text" id="id" readonly="readonly" value="1" size="6">
<input name="indir" type="text" id="indir" value="<?php echo $_SERVER['REMOTE_ADDR'] ?>" size="6">
<input name="mod" type="submit" id="mod" value="esegui modifiche">
</form>

Ma ora come faccio a inviare il post senza cliccare il pulsante?
 
Ciao, puoi utilizzare javascript
HTML:
<script>
    document.mod.submit();
</script>
lo inserisci dopo il form ,ma, se l'action richiama la stessa pagina continuerà ad inviare i dati
o puoi usare la funzione setTimeout() per inviarlo dopo tot tempo
HTML:
<script>
    setTimeout(function(){        
        document.nomeform.submit();
    },600000);// 600 mila millisecondi dovrebbero essere 10 minuti
</script>
 
ho provato con un tempo minore per prova, ma aggiorna la pagina senza spedire il modulo al db... ;-(
 
cambia
PHP:
if(isset($_POST['mod'])){
con
PHP:
if(isset($_POST['id'])){
nel secondo esempio ho scritto
Codice:
document.nomeform.submit();
ma ovviamente devi mettere il name del tuo form
Codice:
document.mod.submit();
 
Siiiii funzionaaaaa!!!
Grazie...
PHP:
<?php
include ("configurazione.php");  
include ("connetti.php");  

if(isset($_POST['id'])){  
	
    $id=$_POST['id'];  
    $indir = $_POST['indir'];
       
 $q="UPDATE tabella SET indir='$indir' WHERE ID='1'";  
    $ris=mysql_query($q);  
    echo "aggiornato il record $id";    
      
}  
  
if(isset($_GET['mod'])){  
    $id=addslashes(htmlspecialchars($_GET['mod']));
    $q="SELECT * FROM tabella  WHERE ID='$id'";  
    $ris=mysql_query($q);  
    $riga=mysql_fetch_array($ris);     
    $id=$riga['id'];
    $indir=$riga['indir'];
       
} 
?>
<form action="questapagina.php" method="post" name="mod">
<input name="id" type="text" id="id" readonly="readonly" value="1" size="6">
<input name="indir" type="text" id="indir" value="<?php echo $_SERVER['REMOTE_ADDR'] ?>" size="6">
<input name="mod" type="submit" id="mod" value="esegui modifiche">

<script>
    setTimeout(function(){        
        document.mod.submit();
    },6000);// 600 mila millisecondi dovrebbero essere 10 minuti
</script>

</form>
 
Ok, domanda...
Dal mio smartphone, fuori casa (per cui non collegato al router di casa) riesco ad accedere al mio ip. Inserisco la porta e vedo dalle ip camere.
80.12.3.12:120 ad esempio... e vedo la ip cam perché dal route ho aperto le porte NAT.
Volevo però accedere anche al mio pc con linux a cui ho aperto la porta es 100
Ma se dall'esterno digito 80.12.3.12:100 non funziona. Cosa manca?
dovrei digitare anche l'ip interno?
 
Non vedo queste impostazioni nel mio router...
Schermata 2014-12-31 alle 08.50.28.png
Ma per accedere alle ipcam ho semplicemente aperto le porte nat e anche da esterno riesco a vedere casa...
Ma una cosa vorrei saper... ammesso che il mio router sia "aperto"... con il solo ip potrei acervi? così: http://xx.xx.xx.xx:porta
E poi, dovrei impostare una porta anche sul pc in cui vorrei entrare giusto?
 
Ho capito il problema, con questo script, quale ip recupero?
PHP:
<?php echo $_SERVER['REMOTE_ADDR'] ?>
Perché non è quello giusto.
Ho guardato nel router e me ne da un altro con il quale riesco ad accedere...
Come faccio a recuperare nello script l'ip corretto?
 
ufff... non capisco. Se vado in un qualsiasi sito che mostra l'ip, è corretto. Se però metto lo script nel mio sito su altervista che è sempre un sito esterno... mi da un ip diverso... perché!!!????????
 
infatti come sospettavo, altervista una un proxy... per l'esattezza cloudflare

prova a sostituire
$_SERVER['REMOTE_ADDR']
con
$_SERVER['HTTP_CF_CONNECTING_IP']



host paolochiavetta.altervista.org
paolochiavetta.altervista.org is an alias for paolochiavetta.altervista.org.cdn.cloudflare.net.
paolochiavetta.altervista.org.cdn.cloudflare.net is an alias for cf-protected.paolochiavetta.altervista.org.cdn.cloudflare.net.
cf-protected.paolochiavetta.altervista.org.cdn.cloudflare.net has address 108.162.196.122
cf-protected.paolochiavetta.altervista.org.cdn.cloudflare.net has address 108.162.197.122
 
Siiii...... grazieeee... ora è corretto.
In pratica di chi era quell'ip che vedevo io?
 
Rieccomi... a dare noia :evil:
Funziona tutto, ma nella pagina redirect.php che si trova in un sito esterno e appunto reindirizza all' ip del mio server, vorrei non vedere nell'indirizzo il mio ip....
Al momento lo script è così:
PHP:
<?php 
include_once ("configurazione.php");  
include_once ("connessione.php"); 
 @mysql_connect(localhost,$DB_user,$DB_password);
 @mysql_select_db($DB_name) or die("Impossibile selezionare il database.");
 $result = mysql_query("SELECT * FROM tabella WHERE id=1");
 $num=mysql_numrows($result); 
while($row = mysql_fetch_array( $result )) { 
$id=$row['id'];



header ("location: http://".$row[ipnew'].""); 



 } 
?>
e funziona.
Se metto così:
PHP:
<?php 
include_once ("configurazione.php");  
include_once ("connessione.php"); 
 @mysql_connect(localhost,$DB_user,$DB_password);
 @mysql_select_db($DB_name) or die("Impossibile selezionare il database.");
 $result = mysql_query("SELECT * FROM tabella WHERE id=1");
 $num=mysql_numrows($result); 
while($row = mysql_fetch_array( $result )) { 
$id=$row['id'];



include ("http://".$row['ipnew']."");



 } 
?>
Vedo schermo bianco. Senza errore, ma bianco.
Dove sbaglio?
 

Discussioni simili