Bonjour à tous
Aujourd’hui je vais vous partager un petit script bash que j’ai appelé netsh (je sais pas si ça existe déjà mais bon…), qui se base sur la modification du fichier de configuration /etc/network/interfaces qui permet de modifier son IP pour qu’elle soit statique, ou qu’elle soit attribuée par le routeur/box.
Ici, nous allons utiliser la propriété statique de ce fichier.
Le script utilise également zenity qui est disponible dans les dépôts Debian.
Si vous n’avez pas le droit de scanner le réseau, supprimez le début du script, sinon, installez arp-scan (scanner de réseau)
Voici enfin le script
#Début du scipt
#!/bin/bash
#On scanne le réseau pour savoir quelles ips sont deja prises et dons lesquelles ont peu prendre
zenity --info --text="<span color=\"red\" font-weight=\"bold\">Voici les IP qui sont déjà prises:</span>\n\n`arp-scan --localnet`" --title="Netsh"
#on crée une variable ip que l'utilisateur entre. Attention; le 'grep 1' à la fin de la ligne
#est la car souvent les adresses ips locales commencent par 1 (exemples:192.xxx.xxx.xxx ou 172.xxx.xxx.xxx
ip=`zenity --entry --text="Quelle IP voulez-vous ?" --title="Netsh"|grep 1`
#Et on rentre cette variable dans le fichier de config
echo 'auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address '$ip'
mask 255.255.255.0
gateway 192.168.0.254
auto wlan0
iface wlan0 inet dhcp
'>/etc/network/interfaces
#On redémarre l'interface (dans mon cas eth0, modifiez si vous en avez une autre, comme wlan0 pour la wifi
ifdown eth0
ifup eth0
ifdown eth0
ifup eth0
#Et on teste si on voit l'ip quand on fait ifconfig, si on ne la voit pas, cela affiche "erreur"
#sinon, cela affiche qu'on a réussi l'opération
test=`ifconfig|grep $ip`
nul=""
if [ -z "$test"]
then
zenity --info --text="<span color=\"red\" font-weight=\"bold\">Erreur !</span>" --title="Netsh"
else
zenity --info --text="<span color=\"red\" font-weight=\"bold\">Votre IP a été modifiée avec succès</span>" --title="Netsh"
fi
#Et voilà, c'est aussi simple que ça, n'hésitez surtout pas à me poser des questions :)
#Fin du script
Pour l’éxécuter facilement placez ce script en root dans le dossier /usr/bin
J’ai personnelement utiliser un fichier .desktop pour y accéder facilement, tout en restant en superutilisateur. Si vous ne voulez pas faire cette étape, vous devrez lancer la commande netsh (ou le nom que vous avez donné au script) en root dans le terminal.
Voila le fichier desktop:
[Desktop Entry]
Encoding=UTF-8
Name=Netsh
Exec=gksudo netsh
Type=Application
C’est assez simple
Placez ce fichuier sur votre bureau et renommez le en netsh(ou autre).desktop
Et voila, c’est terminé mais ça peut vous etre très utile pour changer facilement votre ip en itinérance si vous ne voulez pas utiliser l’ip attribuée ;).