python - bande passante sortante pour les ips publiques
Aug 19 2020
J'utilise la ligne de code ci-dessous pour vérifier le nombre total d'octets envoyés hors de ma boîte centos
import psutil
psutil.net_io_counters().bytes_sent
Je veux effectuer cela uniquement pour l'adresse IP publique. En d'autres termes, je souhaite calculer la bande passante sortante uniquement pour l'adresse IP publique.
Réponses
kerasbaz Aug 20 2020 at 03:11
import ipaddress
import psutil
net = psutil.net_io_counters(pernic=True)
for name, interface in psutil.net_if_addrs().items():
for address in interface:
try:
network = ipaddress.IPv4Network(f'{address.address}\{address.netmask}')
if not network.is_private and not network.is_reserved:
print(net[name].bytes_sent)
break
except ValueError as e:
# these would be eg MAC addresses or similar
pass