Code Tips and Snippets


Pas encore membre ?
Cliquez ici pour vous inscrire.
Vous pourrez poster des commentaires.
VirtualBox en mode bridge : sélectionner automatiquement la carte réseau et démarrer la VM
Posté par pk le Dimanche 09 Octobre 2016 à 10:47:11
Niveau 2 étoilesLangage CSystème d'exploitation LinuxSystème d'exploitation Windows

Si comme moi, vous utilisez une VM VirtualBox pour développer des applications serveurs, vous avez certainement configuré votre VM pour utiliser votre interface réseau en mode bridge.

S’il vous arrive de déplacer votre VM sur un PC Portable pour pouvoir continuer à développer ou faire des démos, vous avez alors certainement du être comme moi agacés d’avoir à mettre à jour la carte réseau sur laquelle le réseau est bridgé à chaque copie de VM et à chaque fois que vous passez d’une connexion Filaire à une connexion Wifi (et réciproquement).

Nous allons voir dans ce billet comment développer un mini-programme en C qui nous permette de switcher automatiquement sur la bonne interface réseau puis de lancer la VM.

La solution consiste en l’écriture d’un petit bout de code qui exploite la commande à tout faire vboxmanage de VirtualBox.

Cette commande sera utilisée successivement avec 3 paramètres différents :

  1. Lister les différentes interfaces réseau disponibles sur la machine :
    vboxmanage list bridgedifs
  2. Une fois l’interface voulue sélectionnée ( on prends la 1ère interface filaire s’il en existe, la 1ère Wifi sinon), et on mets à jour notre VM avec cette interface :
    vboxmanage modifyvm "VM Name" --bridgeadapter1 "nic name"
  3. On démarre notre VM :
    vboxmanage startvm "VM Name"

Vous pouvez allez voir sur GitHub une version développée en C pour un Host Windows,
et même y récupérer une version déjà compilée (yakpro-vm-start.exe).

Il est très facile de l’adapter pour un Host Linux, et même, dans ce cas, écrire un petit script php (ou autre) plutôt qu’un programme C.

Si vous avez aimé ce billet, une petite étoile sur GitHub me fera plaisir...

yakpro rulez!

Ce Site a été mis à jour le Mercredi 19 Janvier 2022 à 09:43:57