Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Chemin du fichier de log pour l'état réseau
- LOG_FILE="/home/siindus/Documents/network_status_log.txt"
- # Fonction pour afficher un log horodaté
- log() {
- echo "$(date "+[%Y-%m-%d %H:%M:%S]") $1" >> "$LOG_FILE"
- }
- # Effacer le fichier de log précédent
- > "$LOG_FILE"
- log "Début de la vérification de l'état réseau"
- # Obtenir la liste des interfaces réseau, en excluant 'lo'
- interfaces=$(nmcli device status | grep -E 'connected|connecting' | grep -v 'lo' | awk '{print $1}')
- # Vérifier si des interfaces sont disponibles
- if [ -z "$interfaces" ]; then
- log "Aucune interface réseau active trouvée."
- yad --error --title="Erreur Réseau" --text="Aucune interface réseau active détectée." --width=300 --height=100 --center --undecorated --skip-taskbar --ontop
- exit 1
- fi
- # Parcourir chaque interface pour afficher ses informations
- for iface in $interfaces; do
- log "------------------------------------------------"
- log "Interface : $iface"
- # État de l'interface
- state=$(nmcli device show "$iface" | grep -i "GENERAL.STATE" | awk -F': ' '{print $2}')
- log "État : $state"
- # Adresse IP et Masque de sous-réseau
- ip_info=$(nmcli -g IP4.ADDRESS device show "$iface")
- if [ -n "$ip_info" ]; then
- ip_address=$(echo "$ip_info" | awk -F'/' '{print $1}')
- subnet_mask=$(echo "$ip_info" | awk -F'/' '{print $2}')
- log "Adresse IP : $ip_address"
- log "Masque de sous-réseau : /$subnet_mask"
- else
- log "Adresse IP : Non attribuée"
- log "Masque de sous-réseau : Non attribué"
- fi
- # Passerelle
- gateway=$(nmcli -g IP4.GATEWAY device show "$iface")
- log "Passerelle : ${gateway:-Non attribuée}"
- # Serveurs DNS
- dns_servers=$(nmcli -g IP4.DNS device show "$iface" | tr '\n' ', ' | sed 's/, $//')
- log "Serveurs DNS : ${dns_servers:-Non configurés}"
- # Adresse MAC
- mac_address=$(nmcli -g GENERAL.HWADDR device show "$iface")
- log "Adresse MAC : ${mac_address:-Non détectée}"
- log "------------------------------------------------"
- done
- # Afficher le contenu du fichier de log à l'utilisateur de manière élégante
- yad --text-info --title="État du Réseau" --filename="$LOG_FILE" --width=600 --height=400 --center --undecorated --skip-taskbar --ontop
Add Comment
Please, Sign In to add comment