57 lines
3.2 KiB
Python
57 lines
3.2 KiB
Python
import sys
|
|
import time
|
|
import subprocess
|
|
import os
|
|
|
|
if len(sys.argv) != 2:
|
|
print("\nUsage: \x1b[35m"+sys.argv[0]+" \x1b[37m[\x1b[35minterface\x1b[37m]\x1b[0m")
|
|
print("\x1b[37mMade by Syntax.\x1b[0m")
|
|
print("\x1b[35;1mhttps://github.com/cannabispowered\x1b[0m\n")
|
|
sys.exit(0)
|
|
|
|
devnull = open(os.devnull, 'w')
|
|
|
|
print("Reading data from iface \x1b[35m"+sys.argv[1]+"\x1b[0m.")
|
|
while True:
|
|
try:
|
|
try:
|
|
rx_bytes = int(subprocess.check_output(["cat", "/sys/class/net/"+sys.argv[1]+"/statistics/rx_bytes"], stderr=devnull))
|
|
tx_bytes = int(subprocess.check_output(["cat", "/sys/class/net/"+sys.argv[1]+"/statistics/tx_bytes"], stderr=devnull))
|
|
rx_packets = int(subprocess.check_output(["cat", "/sys/class/net/"+sys.argv[1]+"/statistics/rx_packets"], stderr=devnull))
|
|
tx_packets = int(subprocess.check_output(["cat", "/sys/class/net/"+sys.argv[1]+"/statistics/rx_packets"], stderr=devnull))
|
|
except subprocess.CalledProcessError:
|
|
print("\x1b[31;1mInvalid interface name. Exiting.\x1b[0m")
|
|
sys.exit(1)
|
|
|
|
time.sleep(1)
|
|
|
|
rx_bytes1 = int(subprocess.check_output(["cat", "/sys/class/net/"+sys.argv[1]+"/statistics/rx_bytes"]))
|
|
tx_bytes1 = int(subprocess.check_output(["cat", "/sys/class/net/"+sys.argv[1]+"/statistics/tx_bytes"]))
|
|
rx_packets1 = int(subprocess.check_output(["cat", "/sys/class/net/"+sys.argv[1]+"/statistics/rx_packets"]))
|
|
tx_packets1 = int(subprocess.check_output(["cat", "/sys/class/net/"+sys.argv[1]+"/statistics/rx_packets"]))
|
|
|
|
txbytes = tx_bytes1 - tx_bytes
|
|
rxbytes = rx_bytes1 - rx_bytes
|
|
|
|
ppsin = tx_packets1 - tx_packets
|
|
ppsout = rx_packets1 - rx_packets
|
|
|
|
tx_kbps = txbytes / 1024
|
|
rx_kbps = rxbytes / 1024
|
|
|
|
if tx_kbps >= 1024 and rx_kbps >= 1024:
|
|
rx_mbps = rx_kbps / 1024
|
|
tx_mbps = tx_kbps / 1024
|
|
print("\x1b[27mIN: \x1b[35;1m%d \x1b[27mMB \x1b[0m| \x1b[27mOUT: \x1b[35;1m%d \x1b[27mMB \x1b[0m| \x1b[27mPPS IN: \x1b[35;1m%d \x1b[27mPPS \x1b[0m| \x1b[27mPPS OUT: \x1b[35;1m%d \x1b[27mPPS\x1b[0m" % (rx_mbps, tx_mbps, ppsin, ppsout))
|
|
elif tx_kbps >= 1024:
|
|
tx_mbps = tx_kbps / 1024
|
|
print("\x1b[27mIN: \x1b[35;1m%d \x1b[27mKB \x1b[0m| \x1b[27mOUT: \x1b[35;1m%d \x1b[27mMB \x1b[0m| \x1b[27mPPS IN: \x1b[35;1m%d \x1b[27mPPS \x1b[0m| \x1b[27mPPS OUT: \x1b[35;1m%d \x1b[27mPPS\x1b[0m" % (rx_kbps, tx_mbps, ppsin, ppsout))
|
|
elif rx_kbps >= 1024:
|
|
rx_mbps = rx_kbps / 1024
|
|
print("\x1b[27mIN: \x1b[35;1m%d \x1b[27mMB \x1b[0m| \x1b[27mOUT: \x1b[35;1m%d \x1b[27mKB \x1b[0m| \x1b[27mPPS IN: \x1b[35;1m%d \x1b[27mPPS \x1b[0m| \x1b[27mPPS OUT: \x1b[35;1m%d \x1b[27mPPS\x1b[0m" % (rx_mbps, tx_kbps, ppsin, ppsout))
|
|
else:
|
|
print("\x1b[27mIN: \x1b[35;1m%d \x1b[27mKB \x1b[0m| \x1b[27mOUT: \x1b[35;1m%d \x1b[27mKB \x1b[0m| \x1b[27mPPS IN: \x1b[35;1m%d \x1b[27mPPS \x1b[0m| \x1b[27mPPS OUT: \x1b[35;1m%d \x1b[27mPPS\x1b[0m" % (rx_kbps, tx_kbps, ppsin, ppsout))
|
|
|
|
except KeyboardInterrupt:
|
|
print("\n\x1b[31;1mCaught CTRL+C. Exiting\x1b[0m")
|
|
sys.exit(0) |