Transformer une ip dynamique en ip fixe en étant derrière un routeur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 682 fois - Téléchargée 26 fois

Contenu du snippet

j'ai fait ce code afin de pouvoir accèder, à partir de mon site internet, à ma base mysql hébergée chez moi.
pré-requis:
- avoir un serveur web sur sa machine locale (easyphp par exemple),
- avoir un site web avec un transfert ftp
installer ip.ph sur votre site web
installer recup.php sur votre serveur web local
lancer internet explorer en local recup.php
et laissez tourner indéfiniment

Source / Exemple :


// fichier ip.php
<?
echo $REMOTE_ADDR;
?>
//cela permet uniquement d'afficher l'adresse ip du routeur (ou du poste si conecté avec un modem direct)
//vous pouvez le lancer seul pour savoir votre addresse ip

//fichier recup.php
<HTML>
// on commence par l'entête html afin de lancer automatiquement un raffraichissement
<HEAD>
  <META HTTP-EQUIV="refresh" CONTENT="300" URL="recup.php">
//le 300 est en fait le nombre de seconde entre 2 tests d'adresse ip
</HEAD>
<BODY>

</BODY>
</HTML>
<? 
$adrip = "";
//récupération de l'adresse ip
$contenu = file("http://www.votresite.com/ip.php","r");
//traitement du fichier
foreach($contenu as $value){ 
} 
$adrip=$value; //j'aurai pu utiliser la variable $value le reste du temps 
include "fichier.txt"; //c'est un fichier situé dans le même dossier que recup.php sur votre serveur en local
// il permet de stocker l'adresse ip

echo $serveursql,'<br>'; //affichons pour voir

if ($adrip==$serveursql) { //comparaison avec ip enregistree
}
else {
	//adresse du serveur ftp de votre site
	$host = "ftp.votresite.com"; 
	
	//Repertoire de base de la connexion
	$rep = "/web/";
	
	//Fichier a uploader
	$file = "fichier.txt";
	
	// connection au serveur
	if (!$ftp = @ftp_connect($host))
	    {
	    echo "Connection impossible<br>";
	    }
	    else
	    {
	    echo "Connecté à $host<br>";
	
	    // login
	    if(@ftp_login($ftp,"nomuserftp", "motdepasseftp"))
	      {
                      //silogin ok
	      echo "Login ok<br>";
	
	      //Upload du fichier
	      	$fp = fopen("fichier.txt","w+");
		$charge = '<? $serveursql = "'.$adrip.'" ?>' ;
		fwrite($fp,$charge); 
		echo 'ecrit '.$charge;
		if (ftp_put($ftp, "$rep/$file" , "$file", FTP_ASCII))
	                   {
	                    //si on a bien uploadé
	                    echo "<br><br>fichier.txt uploadé";
	                    $test = 'uploadé';}
	       else // sinon on fait marche arrière
	       {
	      	$fp = fopen("fichier.txt","w+");
		$charge = '<? $serveursql = " " ?>' ;
		fwrite($fp,$charge); 
		echo 'ecrit '.$charge;
	       echo "<br><br>fichier" . $file . "non uploadé";
	       $test = 'nonuploadé';
	       } 
	      }
	    }
	//on s'envoi un petit mail pour se prévenir qu'on a changé d'adresse ip
                mail("moi@mosite.com",$test.$adrip,$adrip,"From: moi@monsite.com");
} //sinon on ne fait rien
?>

Conclusion :


bien sur pour envoyer un mail il faut que votre serveur en local soit bien configuré
n'oubliez pas si vous utilisez un modem routeur firewall comme moi (bewan 600 adsl) de rediriger les ports NAT:
- serveur web: protocole TCP port publique 80 sur l'adresse ip de votre serveur local port 80
- base MYSQL: protocole TCP port publique 3306 sur l'adresse ip de votre serveur local port 3306

A voir également

Ajouter un commentaire Commentaires
Messages postés
2
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
4 avril 2008

génial_ merci
Messages postés
31
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
7 octobre 2004

Ce script est tout ce que je voulais, je te remercie. Et continu comme sa franchement c'est du bon boulot !
Messages postés
70
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 mars 2007

tu ouvres une fenetre de lignes de commandes (démérrer>exécuter puis "cmd"

tu te places dans le dossier de php puis tu tapes :

php "c:\adresse du script\recup.php"
Messages postés
124
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
12 février 2010

DONNE NOUS UN EXEMPLE...

merci
Messages postés
70
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 mars 2007

non, niveau sécurité chez no-ip, il n'y a pas plus de risques qu'avec une IP fixe.

En fait au lieu d'utiliser un navigateur comme explorer, tu lances php en lignes de commande. l'avantag, c'est qu'il n'y a pas de timelimit, ca fonctionne comme une vraie application serveur.
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.