Trucs:Avoir une adresse fixe et gratuite pour son serveur web
Introduction
Je me suis demandé après avoir installé le célèbrissime serveur Apache, comment je pouvais avoir une adresse plus facile à retenir qu'une rébarbative suite de chiffres (une IP). Pour ça, il est possible de prendre un compte chez un hébergeur gratuit pour héberger uniquement (publicité oblige) une page de redirection vers votre serveur. Mais le problème est que la plupart des fournisseurs d'accès fournissent des adresses IP dynamiques (qui changent à chaque connexion), et donc il faudrait changer l'adresse de la page de redirection après chaque nouvelle connexion. C'est répétitif et pas spécialement excitant, DONC ça doit etre fait automatiquement ;-) Mais comment donc ? me diriez-vous. En créant un script qui envoie automatiquement votre nouvelle IP à la page de redirection !
On va diviser le boulot en 2 étapes :
-Le script Bash
-La page de redirection
Let's go !
Le script Bash
Un script bash sur la machine où est installé le serveur va relever l'adresse IP de la machine, et l'envoyer au serveur FTP qui heberge la page de redirection.
su
)# début du script
# l'adresse est relevée et stockée dans le fichier ipserveur.txt :
/sbin/ifconfig ppp0 | grep "inet adr" > /root/ipserveur.txt
# on envoie ce fichier par FTP :
ftp <<**
open ftp.QuelqueChose.fr
send /root/ipserveur.txt ./ipserveur.txt
bye
**
# fin du script
Enregistrer ce fichier par exemple sous uploadip.sh dans le répertoire /root
Puis rendez-le exécutable pour root, et restreignez ses droits d'accès : chmod 700 /root/uploadip.sh
Il faut aussi créer un fichier nommé .netrc toujours dans le répertoire /root contenant vos données de connexion FTP, comme ceci :
login VotreLoginFTP
password VotreMotDePasse
Ensuite il faut aussi restreindre les droits pour ce fichier : chmod 600 /root/.netrc
Voilà ! Maintenant vous avez créer un script qui inscrit une ligne contenant votre IP toute neuve dans un fichier et qui envoie ce fichier sur le serveur. Il est à lancer après chaque connexion (avec la commande sh /root/uploadip.sh
). Vous pouvez d'ailleurs rajouter une ligne de commande au début du script qui vous permet de vous connecter à internet, pour n'avoir qu'une seule commande à taper lors de votre connexion, vous évitant ainsi une dépense d'énergie à transmettre à vos phalanges ;-)
La page de redirection
Un script PHP sur le serveur de la page de redirection va lire le fichier précédemment envoyé contenant l'IP, et va l'intégrer à la page HTML : (enregistrez ce qui suit sous index.php)
<head>
<title>Redirection en cours</title>
<?
$fp = fopen("ipserveur.txt","r");
$adresse = fgets($fp,255);
fclose($fp);
$adresse = str_replace (" inet adr:","",$adresse);
$adresse = str_replace (" P-t-P:193.253.160.3 Masque:255.255.255.255","",$adresse);
$adresse = str_replace ("\n","",$adresse);
$adresse = "http://".$adresse;
?>
<script language='javascript'>
function redirection()
{
window.location="<? echo $adresse; ?>";
}
</script>
<body onLoad="redirection()">
<a href="<? echo $adresse; ?>">Cliquez ici si vous n'etes pas redirigé
Click here if you're not redirected</a>
</body>
</html>
Mettez ensuite cette page sur le serveur de l'hébergeur gratuit et c'est terminé ! Pour accéder à votre propre serveur rien qu'à vous tout seul, entrez simplement l'URL de la page php que vous avez créée.