Python

Code python pour Afficher les cartes réseau sur un ordinateur

Dans cet article, nous allons explorer comment utiliser Python pour afficher les informations sur les cartes réseau présentes sur un ordinateur. Nous aborderons les étapes nécessaires à la collecte de ces informations et fournirons un exemple de code Python pour y parvenir.

💡 Les cartes réseau, souvent appelées adaptateurs réseau, sont des composants essentiels de tout ordinateur, leur permettant de se connecter à des réseaux locaux ou à Internet.

Bibliothèques Python nécessaires


Pour commencer, assurez-vous d’avoir installé les bibliothèques Python nécessaires. Nous utiliserons principalement la bibliothèque netifaces, qui fournit une interface simple pour obtenir des informations sur les interfaces réseau disponibles sur la machine.

pip install netifaces
Obtenir les informations sur les cartes réseau


Une fois que vous avez installé la bibliothèque netifaces, vous pouvez commencer à collecter des informations sur les cartes réseau. Voici un exemple de code Python pour obtenir et afficher les cartes réseau disponibles sur un ordinateur :

import netifaces

def afficher_cartes_reseau():
    interfaces = netifaces.interfaces()
    if interfaces:
        print("Cartes réseau disponibles :")
        for interface in interfaces:
            interface_info = netifaces.ifaddresses(interface)
            if netifaces.AF_INET in interface_info:
                ipv4_info = interface_info[netifaces.AF_INET][0]
                print(f"Interface : {interface}")
                print(f"Adresse IP : {ipv4_info['addr']}")
                print(f"Masque de sous-réseau : {ipv4_info['netmask']}")
                print(f"Adresse MAC : {interface_info[netifaces.AF_LINK][0]['addr']}")
                print("--------------------")
    else:
        print("Aucune carte réseau n'a été trouvée.")

if __name__ == "__main__":
    afficher_cartes_reseau()

Ce code utilise la fonction netifaces.interfaces() pour obtenir une liste des noms d’interface réseau disponibles sur l’ordinateur. Ensuite, il parcourt chaque interface pour obtenir des informations telles que l’adresse IP, le masque de sous-réseau et l’adresse MAC à l’aide de la fonction netifaces.ifaddresses(). Enfin, il affiche ces informations de manière structurée.

Exemple d’utilisation


Vous pouvez exécuter le code Python ci-dessus dans votre environnement Python local pour afficher les cartes réseau sur votre propre ordinateur. Assurez-vous simplement d’avoir les autorisations nécessaires pour accéder à ces informations système.

Voici un exemple plus avancé qui utilise la bibliothèque psutil en combinaison avec netifaces pour afficher des informations détaillées sur les cartes réseau, y compris les statistiques de trafic réseau en temps réel :

import netifaces
import psutil
import time

def afficher_infos_reseau():
    # Obtenir les statistiques réseau actuelles
    stats_avant = psutil.net_io_counters(pernic=True)

    # Afficher les cartes réseau disponibles avec leurs informations
    interfaces = netifaces.interfaces()
    if interfaces:
        print("Cartes réseau disponibles :")
        for interface in interfaces:
            interface_info = netifaces.ifaddresses(interface)
            if netifaces.AF_INET in interface_info:
                ipv4_info = interface_info[netifaces.AF_INET][0]
                print(f"Interface : {interface}")
                print(f"Adresse IP : {ipv4_info['addr']}")
                print(f"Masque de sous-réseau : {ipv4_info['netmask']}")
                print(f"Adresse MAC : {interface_info[netifaces.AF_LINK][0]['addr']}")

                # Obtenir les statistiques réseau pour cette interface
                stats_interface = stats_avant.get(interface)
                if stats_interface:
                    print("Statistiques de trafic réseau :")
                    print(f"   Octets reçus : {stats_interface.bytes_recv} bytes")
                    print(f"   Octets envoyés : {stats_interface.bytes_sent} bytes")

                print("--------------------")

    else:
        print("Aucune carte réseau n'a été trouvée.")

    # Rafraîchir les statistiques après quelques secondes
    time.sleep(5)
    stats_apres = psutil.net_io_counters(pernic=True)

    # Afficher les variations dans les statistiques de trafic réseau
    print("\nVariations dans les statistiques de trafic réseau :")
    for interface, stats_avant in stats_avant.items():
        stats_apres_interface = stats_apres.get(interface)
        if stats_apres_interface:
            print(f"Interface : {interface}")
            print(f"   Octets reçus : {stats_apres_interface.bytes_recv - stats_avant.bytes_recv} bytes")
            print(f"   Octets envoyés : {stats_apres_interface.bytes_sent - stats_avant.bytes_sent} bytes")
            print("--------------------")

if __name__ == "__main__":
    afficher_infos_reseau()

Dans cet exemple, nous avons ajouté l’utilisation de psutil pour obtenir des statistiques de trafic réseau en temps réel. Nous affichons d’abord les informations de base sur les cartes réseau disponibles, puis nous attendons quelques secondes et affichons les variations dans les statistiques de trafic réseau pour chaque interface. Cette approche fournit une vue plus complète et dynamique des performances du réseau sur l’ordinateur. Assurez-vous d’installer la bibliothèque psutil en utilisant pip install psutil si vous ne l’avez pas déjà fait.

Vérification de l’état d’une interface réseau avec Python

Un cas particulier intéressant pourrait être celui où vous avez besoin de vérifier si une interface réseau spécifique est active ou inactive sur un système. Voici un exemple de code Python qui utilise la bibliothèque netifaces pour vérifier l’état d’une interface réseau donnée :

import netifaces

def verifier_etat_interface(interface_name):
    interfaces = netifaces.interfaces()
    if interface_name in interfaces:
        interface_info = netifaces.ifaddresses(interface_name)
        if netifaces.AF_INET in interface_info:
            print(f"L'interface {interface_name} est active.")
        else:
            print(f"L'interface {interface_name} est inactive.")
    else:
        print(f"L'interface {interface_name} n'existe pas sur cet ordinateur.")

if __name__ == "__main__":
    interface_a_verifier = "eth0"  # Remplacez "eth0" par le nom de l'interface à vérifier
    verifier_etat_interface(interface_a_verifier)

Dans cet exemple, la fonction verifier_etat_interface prend le nom d’une interface réseau en entrée. Elle vérifie d’abord si cette interface existe sur l’ordinateur en recherchant son nom dans la liste des interfaces retournées par netifaces.interfaces(). Ensuite, elle utilise netifaces.ifaddresses() pour obtenir des informations sur cette interface. Si l’adresse IP de type AF_INET est présente dans les informations, cela signifie que l’interface est active. Sinon, elle est considérée comme inactive.

Vous pouvez personnaliser cet exemple en remplaçant "eth0" par le nom de l’interface que vous souhaitez vérifier. Cela peut être utile dans des scénarios où vous devez automatiser des actions en fonction de l’état d’une interface réseau spécifique sur un système.

Autres articles

Différence entre une Liste et un Tableau...
Python est un langage de programmation très polyvalent et puissant,...
Read more
Créer une Matrice de Corrélation en Python...
Dans cet article, nous allons voir comment créer une...
Read more
Python Tkinter - Guide Complet
Python est un langage de programmation populaire et polyvalent utilisé...
Read more

Laisser un commentaire

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