- get_local_ip: construit d'abord la liste des IPs physiques (getifaddrs
avec IFF_POINTOPOINT exclu + type=1 ARPHRD_ETHER requis), puis vérifie
que l'IP choisie par le UDP-connect-trick en fait partie → évite de
retourner une IP VPN même quand le trafic y est routé
- is_physical: remplace le filtrage par préfixe de nom par type kernel
/sys/class/net/<iface>/type == 1 (Ethernet/WiFi) ; exclut WireGuard
(type 65534), tunnels et autres interfaces virtuelles nommées librement
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- /sys/block expose nvme0n1 (namespace), mais smartctl a besoin du contrôleur
nvme0 → déduplication via HashSet pour éviter les doublons nvme0n1/nvme0
- smartctl -j → smartctl -a -j pour inclure nvme_smart_health_information_log
(sans -a, le log de santé NVMe n'est pas dans la sortie JSON)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>