python - băng thông gửi đi cho ips công cộng
Aug 19 2020
Tôi đang sử dụng dòng mã dưới đây để kiểm tra tổng số byte được gửi từ hộp centos của tôi
import psutil
psutil.net_io_counters().bytes_sent
Tôi muốn thực hiện điều này chỉ cho IP công cộng. Nói cách khác, tôi muốn tính toán băng thông gửi đi chỉ dành cho IP công cộng.
Trả lời
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