Yeah, I like that!
To make it OS independent: python offers psutil to measure traffic over interfaces. See below.
But that way you don't take into account traffic by other devices on your LAN / Internet connection. To tackle it all: keep pinging to 1.1.1.1 or 8.8.8.8, and as soon as the ping time is relatively high, SAB could throttle down.
Code: Select all
>>> import psutil
>>> psutil.net_io_counters(pernic=True)
{'veth89f324e': snetio(bytes_sent=8482919, bytes_recv=867900, packets_sent=24290, packets_recv=2530, errin=0, errout=0, dropin=0, dropout=0), 'br-adc818727e59': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'vethd18f0b4': snetio(bytes_sent=68740585, bytes_recv=0, packets_sent=196196, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'wlo1': snetio(bytes_sent=788082436, bytes_recv=13777769664, packets_sent=4653808, packets_recv=12630144, errin=0, errout=0, dropin=0, dropout=0), 'lo': snetio(bytes_sent=24231863, bytes_recv=24231863, packets_sent=239782, packets_recv=239782, errin=0, errout=0, dropin=0, dropout=0), 'docker0': snetio(bytes_sent=317765562, bytes_recv=4542384, packets_sent=260835, packets_recv=50049, errin=0, errout=0, dropin=0, dropout=0), 'eno1': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'teredo': snetio(bytes_sent=1152, bytes_recv=826, packets_sent=17, packets_recv=9, errin=0, errout=0, dropin=0, dropout=0)}