rafraichir un lien vers une ip dynamique

  • Créateur du sujet Créateur du sujet mxmac
  • Date de début Date de début

mxmac

Membre expert
Club iGen
11 Mai 2002
3 316
121
je ne possede pas d'ip fixe (oouanadou pour encore un moment... sic !) mais je souhaite creer une redirection vers mon serveur web.

parmi les solution que j'envisage il y a un nom de domaine que je pourrais rediriger, y'a-t-il un moyen de controler régulierement automatiquement son ip et mettre a jour une redirection ou une page internet qui redirigerait sur la nouvelle ip ?
confused.gif
 
mais y'a aucun moyen d'avoir une petite appli qui permet de le faire sans passer par un tier ?
 
C'est ça le principe, chez dyndns, par exemple, il faut s'inscrire sur leur site, choisir l'url qui sera associée sur leur site (genre machin.dyndns.org, machin.mine.nu, machin.homeip.net, machin.serveftp.net, ils ont plein de choix
wink.gif
), tu installes un petit logiciel (DnsUpdate, c'est son nom), et il met à jour le dns dès que tu changes d'ip.

http://www.xrings.net/xrings/article.php3?id_article=90 là pour plus de détail...
 
<blockquote><font class="small">Post&eacute; &agrave; l'origine par mxmac:</font><hr /> mais y'a aucun moyen d'avoir une petite appli qui permet de le faire sans passer par un tier ?

[/QUOTE]

il faut forcément passer par un tiers.
tu ne peux pas mettre à jour un DNS, ce n'est techniquement pas possible, il y a un phénomène de propagation de l'information entre tous les serveurs DNS qui restreint un tel dynamisme, on estime à 72 heures le temps de latence.
ça veut dire que si tu changes ton IP de pointage pour ton DNS toto.com, tu dois attendre 72 h pour être que tous les DNS pointeront bien vers ta nouvelle IP, bien sûr, ce délai est de quelques heures pour les serveurs DNS proches.

il te faut donc un tiers qui fasse la redirection pour toi: DNS -&gt; IP Fixe, le serveur sur cette IP fixe apprend régulièrement ton IP dynamique pour rediriger les demandes.

Tu peux monter ça avec Free si tu veux, il te faut du PHP et du MySQL.
Sur ton ordi, tu mets en place un automate CRON qui envoit toutes les 10 minutes une connexion vers une page spéciale en PHP sur Free, le code PHP chope l'adresse IP de ta machine qui vient de se connecter, place cette adresse dans un champ MySQL pour assurer la pérenité et pourra ainsi rediriger toutes demandes arrivant sur une autre page PHP qui fera l'inverse: lecture de ton adresse IP depuis MySQL et redirection.
Libre à toi ensuite de faire pointer un DNS vers ton site Free...
 
impec.... j'ai un serveur ou je peut mettre un sous domaine qui est PHP mysql... ou on trouve l'automate cron ?
laugh.gif
 
<blockquote><font class="small">Post&eacute; &agrave; l'origine par mxmac:</font><hr /> ou on trouve l'automate cron ?
laugh.gif


[/QUOTE]

cron est intégré à MacOS X. fais un "man cron" dans ton Terminal.

le but est d'initier une simple connexion vers son serveur PHP qui chopera l'adresse IP de la machine cliente qui vient lui rendre visite.

tu n'as donc qu'à ajouter une commande curl ou wget, selon l'utilitaire qui est installé sur ta machine. avec les dernières versions de MacOS X, c'est curl par défaut.
je te propose un "man curl" si je te parle chinois
wink.gif


tu ajoutes donc une simple ligne:
Bloc de code:
0,10,20,30,40,50	*	*	*	*	curl -s [url]http://www.tonsiteweb.com/tapage_SaveIP.php[/url] &gt; /dev/null
dans ton cron.

tu peux même éventuellement passer un parametre servant de mot-de-passe pour éviter de prendre en compte une connexion "perdue" par hasard vers ta page web:
www.tonsiteweb.com/tapage_SaveIP.php?pass=1234

sur ton site web, tu créé une page PHP tapage_SaveIP.php et une petite base MySQL et tu mets en place l'enregistrement de ton IP très facilement:

<font class="small">Code:</font><hr /><pre>$adresseIP = getHostByName($REMOTE_ADDR);
$mysql_result = mysql_query("UPDATE tabase SET dyn_ip = '$adresseIP'", $mysql_link);</pre><hr />

si tu as passé un mot-de-passe, tu mets cet enregistrement sous condition que le pass soit bon, bien sûr.

tu n'as plus qu'à créer une page index.php qui fasse la redirection en allant puiser ton adresse dans ta base:

<font class="small">Code:</font><hr /><pre>$mysql_result = mysql_query("SELECT dyn_ip FROM tabase", $mysql_link);
$row = mysql_fetch_row($mysql_result);
$redirection = "http://" . $row[0] . "/";
Header("Location: $redirection");
exit;</pre><hr />

Relativement facile, non?