poe_network_status.py

Placa base Xerxes Nano para módulos Jetson Orin Nano Super y Turing RK1 · Archivo : poe_network_status.py · Lenguaje : Python · Uso : Surveillance de l'état du lien réseau Gigabit Ethernet alimenté par PoE.

Script Python que verifica la integridad del enlace Ethernet y la dirección IP, útil para confirmar la estabilidad de la alimentación PoE y la conectividad de red.

Hardware: Cable Ethernet conectado al puerto RJ45 (PoE) de la Xerxes Nano. Software: Python 3, utilidades de red (ethtool, iproute2). Ejecución: python3 poe_status.py. Asegúrese de que el interruptor o inyector PoE proporcione suficiente potencia.

poe_network_status.py

#!/usr/bin/env python3
import subprocess
import json
import time

INTERFACE = 'eth0' # Interface principale Ethernet sur Xerxes Nano

def get_network_status(iface):
    try:
        # Utilisation de ethtool pour vérifier le lien et la vitesse
        result = subprocess.run(['ethtool', iface], capture_output=True, text=True)
        if 'Link detected: yes' in result.stdout:
            print(f"[{time.strftime('%H:%M:%S')}] {iface}: Lien actif")
            # Extraction de la vitesse
            for line in result.stdout.split('\n'):
                if 'Speed:' in line:
                    print(f"   Vitesse: {line.split(':')[1].strip()}")
        else:
            print(f"[{time.strftime('%H:%M:%S')}] {iface}: Lien inactif")
            
        # Vérification de l'adresse IP via ip command
        ip_result = subprocess.run(['ip', '-4', 'addr', 'show', iface], capture_output=True, text=True)
        if 'inet' in ip_result.stdout:
            ip_addr = ip_result.stdout.split('inet')[1].split()[0]
            print(f"   IP: {ip_addr}")
            
    except Exception as e:
        print(f"Erreur: {e}")

if __name__ == '__main__':
    print("Surveillance du port Ethernet PoE de la Xerxes Nano...")
    while True:
        get_network_status(INTERFACE)
        time.sleep(10)

← Volver a la ficha