Logo Mon Club Elec

Processing – Ligne de commande programmée : récupérer l’adresse IP de l’interface wifi wlan0

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertCapteursComplexesDS18B20

Le traitement des données est une tâche importante pour les administrateurs système et les développeurs. La ligne de commande programmée est un outil puissant qui permet aux utilisateurs d’effectuer des tâches complexes et de récupérer des informations précieuses. Dans cet article, nous allons examiner comment utiliser la ligne de commande programmée pour récupérer l’adresse IP de l’interface wifi wlan0. Nous verrons comment utiliser des commandes simples pour obtenir cette information et comment l’utiliser pour configurer et gérer votre réseau.

Processing – Ligne de commande programmée : récupérer l’adresse IP de l’interface wifi wlan0

Description

  • Ce petit programme montre comment récupérer l’adresse IP de l’interface wifi wlan0 à partir de Processing, sous Ubuntu. Ici, on récupère la sortie console de l’instruction ifconfig qui permet d’obtenir la liste des interfaces du système.
  • La sortie console est ensuite analysée : les lignes voulues sont prises en compte et l’adresse IP est extraite.
  • L’utilité potentielle de ce programme est notamment sur un PC embarqué sous Ubuntu, de connaître et d’afficher sur un LCD au démarrage par exemple l’adresse IP automatique qui est attribuée au PC par le routeur DHCP sur un réseau wifi.

Ressources utiles

  • L’instruction ifconfig : faire man ifconfig dans une console sous Ubuntu (Applications > Accessoires > Terminal).

Le programme

// Programme processing
// généré avec le générateur de code Processing
// www.mon-club-elec.fr
// par X. HINAULT – Juillet 2011 – tous droits réservés

/////////////// Description du programme ////////////
// Ce programme fait exécuter la commande système ifconfig
// et extrait l’adresse ip de l’interface wlan0 (interface réseau wifi)

// XXXXXXXXXXXXXXXXXXXXXX ENTETE DECLARATIVE XXXXXXXXXXXXXXXXXXXXXX

// inclusion des librairies utilisées

// déclaration objets
String[] command ;

String inputString;
String adresseIP;

int compt=0; // variable de comptage des passages

// déclaration variables globales

// XXXXXXXXXXXXXXXXXXXXXX  Fonction SETUP XXXXXXXXXXXXXXXXXXXXXX

void setup(){ // fonction d’initialisation exécutée 1 fois au démarrage

} // fin fonction Setup

// XXXXXXXXXXXXXXXXXXXXXX Fonction Draw XXXXXXXXXXXXXXXXXXXX

void  draw() { // fonction exécutée en boucle

getIP();

print(« Adresse IP wlan0: « );
println(inputString);

while(true); // stoppe boucle draw

} // fin de la fonction draw()

// XXXXXXXXXXXXXXXXXXXXXX Autres Fonctions XXXXXXXXXXXXXXXXXXXXXX

void getIP() {
  // le paquet espeak doit etre installé sous Ubuntu (depuis la logithèque)

command = new String[1];
// espeak -v fr -s 140 « lecture texte espeak »
// espeak -v fr -s 80 -p 30 \ »moteur droit en marche avant\ »
command[0] = « ifconfig »;
//command[1] = «  »;
//command[2]= » »;
//command[3]= » »;  
//command[4]= » »;
//command[5]= » »;  
//command[6]= » »;
//command[7]= » »;

//— exécution de la ligne de commande
try {
    Process p = exec(command); // exécute la commande

    //— récupère la sortie de la commande dans la console de Processing
    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String ligne = null;
    while ((ligne = in.readLine()) != null) { // lit la sortie console ligne à ligne

      System.out.println(ligne); // affiche la ligne courante issue de la console

      //—– prise en compte de la ligne qui suit ligne avec chaine caractère wlan0 —
      if (compt==1) { // si un premier passage a eu lieu
      // mis avant détection wlan0 pour éviter prise en compte lors 1er passage

        inputString=ligne; // on mémorise la ligne
        compt=2; // incrémente compt pour éviter prise en compte des lignes non voulues

        //—- traitement de la chaine de la deuxième ligne = extraction de l’IP
        inputString=trim(inputString);

        String[] subString = split(inputString, ‘:’); // coupe entre les :
        inputString=subString[1]; // garde la sous-chaine :192….Bcast:

        String[] subString2 = split(inputString, ‘ ‘); // coupe entre les :
        inputString=subString2[0]; // garde la sous-chaine d’adresse IP

      }

      //———- recherche la première ligne qui concerne l’interface —
      String[] testString = match(ligne, « wlan0 »); // recherche la chaine dans la ligne

      if (testString != null) { // si le tableau n’est pas vide = si la chaine a été trouvée        
        inputString=ligne;
        compt=1;
      }

    }

  }
  catch (IOException e) {
    e.printStackTrace();
  }  

}
 

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.