Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRANSFORMER UNE IP DYNAMIQUE EN IP FIXE EN ÉTANT DERRIÈRE UN ROUTEUR


Information sur la source

Catégorie :Réseau & Internet Niveau : Débutant Date de création : 15/02/2004 Vu : 13 154

Note :
9,5 / 10 - par 4 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

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

  • // 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
  • ?>
// 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

 

Commentaires et avis

signaler à un administrateur
Commentaire de juki_webmaster le 15/02/2004 21:37:15

Trés bonne contribution .
Note 9/10

signaler à un administrateur
Commentaire de fyav le 23/02/2004 20:55:29

merci, je suis en cours de développement de plusieurs fonctions qui peuvent interresser beaucoup d'entre nous

signaler à un administrateur
Commentaire de gergalp le 04/09/2004 15:13:37

Et si on lancait php en ligne de commande du coté local, ca ne serait pas mieux?

signaler à un administrateur
Commentaire de fyav le 04/09/2004 15:50:20

c'est à dire, donne un exemple

sinon j'ai adopté maintenant un autre moyen: inscription à www.no-ip.com ou www.dyn-dns.org
qui permettent d'avoir un nom de domaine sur une adresse ip dynamique
il n'y a qu'un petit freeware à installer sur sa machine

en fait ça fait exactement la même chose que mon petit programme mais en passant par un intermédiaire.
donc attention à la sécurité....

signaler à un administrateur
Commentaire de gergalp le 05/09/2004 11:12:07

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.

signaler à un administrateur
Commentaire de fyav le 05/09/2004 15:21:39

DONNE NOUS UN EXEMPLE...

merci

signaler à un administrateur
Commentaire de gergalp le 05/09/2004 15:58:34

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"

signaler à un administrateur
Commentaire de XSimpson le 12/12/2004 17:23:23

Ce script est tout ce que je voulais, je te remercie. Et continu comme sa franchement c'est du bon boulot !

signaler à un administrateur
Commentaire de ridtkd le 04/04/2008 14:51:18

génial_ merci

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.