python - แบนด์วิดท์ขาออกสำหรับ ips สาธารณะ
Aug 19 2020
ฉันใช้บรรทัดด้านล่างของรหัสเพื่อตรวจสอบจำนวนไบต์ทั้งหมดที่ส่งออกจากกล่อง centos ของฉัน
import psutil
psutil.net_io_counters().bytes_sent
ฉันต้องการดำเนินการนี้สำหรับ IP สาธารณะเท่านั้น กล่าวอีกนัยหนึ่งฉันต้องการคำนวณแบนด์วิดท์ขาออกสำหรับ IP สาธารณะเท่านั้น
คำตอบ
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