Linux下统计网络速率

本文是我在网络发现当时记录在本地,但已不知处处,如有侵权,请联系删除

实现思路:

读取arp文件,列出所有客户的MAC,然后把用户增加到UPLOAD和DOWNLOAD的target中,隔一秒后读取target中流量信息。

 1 #!/bin/sh
 2 echo "Collecting data..."
 3 echo ""
 4 cat /proc/net/arp | grep : | grep ^192 | grep -v 00:00:00:00:00:00 | awk '{print $1}' > mac-ip
 5 iptables -N UPLOAD
 6 iptables -N DOWNLOAD
 7 while read line;do iptables -I FORWARD 1 -s $line -j UPLOAD;done < mac-ip
 8 while read line;do iptables -I FORWARD 1 -d $line -j DOWNLOAD;done < mac-ip
 9 sleep 1
10 echo "Download speed:"
11 echo ""
12 iptables -nvx -L FORWARD | grep DOWNLOAD | awk '{print $2/1024/1" KB/s ",$1/10" packets/s", $9}' | sort -n -r
13 echo ""
14 echo "Upload speed:"
15 echo ""
16 iptables -nvx -L FORWARD | grep UPLOAD | awk '{print $2/1024/1" KB/s ",$1/10" packets/s", $8}' | sort -n -r
17 
18 while read line;do iptables -D FORWARD -s $line -j UPLOAD;done < mac-ip
19 while read line;do iptables -D FORWARD -d $line -j DOWNLOAD;done < mac-ip
20 iptables -X UPLOAD
21 iptables -X DOWNLOAD

 

posted on 2020-11-26 09:22  sudochen  阅读(462)  评论(0编辑  收藏  举报

导航