[Script] Un script pour changer facilement son adresse ip (pas vraiment) statique

Bonjour à tous :slight_smile:

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 :slight_smile:

#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 :slight_smile:
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 ;).

Le fichier .desktop

Et des boites de dialogue

Bonjour Unva

je me suis permis de retoucher la mise en forme de ton script (dans ton premier message de ce fil) en le faisant précéder et suivre par une ligne contenant uniquement une suite de trois backticks AltGr+7

1 J'aime

Je suis curieux : quel est ton scénario d’utilisation pour ça ? :no_mouth:

Bonjour Unva

je me suis permis de retoucher la mise en forme de ton script (dans
ton premier message de ce fil) en le faisant précéder et suivre par une
ligne contenant uniquement une suite de trois backticks AltGr+7

Merci MicP c’est vrai que je ne me suis pas vraiment renseigné sur l’édition de posts sur ce forum, car je n’en fais pas souvent.

quel est ton scénario d’utilisation pour ça ?

J’emmène mon ordi un peu partout et j’ai un serveur web local, j’ai créé ce petit utilitaire pour avoir une ip plus facile à retenir… Ca parait un peu tiré par les cheveux et je n’ai pas beaucoup réfléchi sur l’utilité que d’autres pourraient en faire.

salut,

[mode ronchon=on]

pourquoi le partager alors ?
[/mode]

quelques améliorations à apporter :
ajouter des vérifications :

  • je pourrais choisir n’importe quelle adresse, même déjà prise, ou correspondant à un autre réseau (10.0.0.10), ou qui ne correspond pas au masque du réseau, ou…
  • l’interface réseau pourrait faire l’objet d’une validation, ou d’un choix

Parce qu’il est sympa et que, sans savoir si d’autres personnes étaient dans son cas, il s’est dit que c’était toujours une bonne idée de partager ? :wink:

Bonsoir,

en toute laïcité du fond de ma distribution EMMABUNTUs, j’entends l’abbé Pierre marmonner:

Le contraire de la pauvreté, ce n’est pas la richesse, mais le partage!

:innocent: