begin process at 2008 08 20 11:49:01
1 228 769 membres
141 nouveaux aujourd'hui
14 257 membres club

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 : 11 438

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

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS