寶塔面板流量統計 排除本地迴環

本文在寶塔面板 7.1.1 上測試通過。

寶塔面板的流量統計調用 net_io_counters(),把所有網卡的流量都統計在內。
只要把總流量減去本地迴環流量即可。

task.py

/www/server/panel/task.py 第 202 行

networkIo = net_io_counters()[:4]

替換爲

如果是單網卡:

networkIo = net_io_counters(pernic=True).get('網卡名')[:4]

如果是多網卡:

networkIo_lo = (0, 0, 0, 0)
if "lo" in net_io_counters(pernic=True).keys():
    networkIo_lo = net_io_counters(pernic=True).get('lo')[:4]
networkIo = net_io_counters()[:4]
networkIo = tuple([networkIo[i]-networkIo_lo[i] for i in range(0,len(networkIo))])

system.py

/www/server/panel/class/system.py 第 447 行

networkIo = psutil.net_io_counters()[:4]

替換爲

如果是單網卡:

networkIo = psutil.net_io_counters(pernic=True).get('網卡名')[:4]

如果是多網卡:

networkIo_lo = (0, 0, 0, 0)
if "lo" in psutil.net_io_counters(pernic=True).keys():
    networkIo_lo = psutil.net_io_counters(pernic=True).get('lo')[:4]
networkIo = psutil.net_io_counters()[:4]
networkIo = tuple([networkIo[i]-networkIo_lo[i] for i in range(0,len(networkIo))])

發現下面還有一個 GetNetWorkOld(self)
490 多行,if pnetInfo[0] == 'io': continue 後面加上 if pnetInfo[0] == 'lo': continue

重啓面板

打開終端

bt
1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章