linux测网速几种方式
1,Iperf 等工具,需要安装服务端
https://blog.csdn.net/qq_15437629/article/details/78827152
2,speedtest 需要python
https://blog.csdn.net/h952520296/article/details/78458072
3, 使用c语言编写,直接获取/proc/net/dev中流量数据。 被动获取
https://blog.csdn.net/ljy520yzy/article/details/7558933
/*****************************************************
*
* 作者:杨志永
* 日期:2012-4-16 4:35PM
* E-mail:ljy520zhiyong@163.com
* QQ:929168233
*
* filename: watch_net_speed.c
* 编译环境:Debian 6.0.4 Testing + GCC 4.6.3 X86_64
*
*****************************************************/#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>#define WAIT_SECOND 5 //暂停时间,单位为“秒” long int getCurrentDownloadRates(long int * save_rate); //获取当前的流量,参数为将获取到的流量保存的位置 int main(int argc, char * argv[])
{long int start_download_rates; //保存开始时的流量计数 long int end_download_rates; //保存结果时的流量计数 while(1){getCurrentDownloadRates(&start_download_rates);//获取当前流量,并保存在start_download_rates里 sleep(WAIT_SECOND); //休眠多少秒,这个值根据宏定义中的WAIT_SECOND的值来确定 getCurrentDownloadRates(&end_download_rates);//获取当前流量,并保存在end_download_rates里 printf("download is : %.2lf Bytes/s\n", (float)(end_download_rates-start_download_rates)/WAIT_SECOND );//打印结果 }exit(EXIT_SUCCESS);
}long int getCurrentDownloadRates(long int * save_rate)
{FILE * net_dev_file; //文件指针 char buffer[1024]; //文件中的内容暂存在字符缓冲区里 size_t bytes_read; //实际读取的内容大小 char * match; //用以保存所匹配字符串及之后的内容 if ( (net_dev_file=fopen("/proc/net/dev", "r")) == NULL ) //打开文件/pro/net/dev/,我们要读取的数据就是它啦 {printf("open file /proc/net/dev/ error!\n");exit(EXIT_FAILURE);}bytes_read = fread(buffer, 1, sizeof(buffer), net_dev_file);//将文件中的1024个字符大小的数据保存到buffer里 fclose(net_dev_file); //关闭文件 if ( bytes_read == 0 )//如果文件内容大小为0,没有数据则退出 {exit(EXIT_FAILURE);}buffer[bytes_read] = '\0';match = strstr(buffer, "eth0:");//匹配eth0第一次出现的位置,返回值为第一次出现的位置的地址 if ( match == NULL ){printf("no eth0 keyword to find!\n");exit(EXIT_FAILURE);}sscanf(match, "eth0:%ld", save_rate);//从字符缓冲里读取数据,这个值就是当前的流量啦。呵呵。 return *save_rate;
}
4,shell脚本方式,通过ifconfig命令获取tx,rx数据。 被动获取
https://www.right.com.cn/forum/thread-105037-1-1.html
此文中ifconfig格式跟centos不一样
centos需要调整取数据部分
#!/bin/bash
#
# shaozx@gmail.com 2010-10-19
#
# Usage:
# ./netspeed.sh runs 60 seconds by step 1s, default to eth0
# ./netspeed.sh eth1 10 runs 10 seconds by step 1s, default to eth1
# ./netspeed.sh eth1 90 5 runs 90 seconds by step 5s, default to eth1IF="eth0" # net card device
TIME=60 # run $TIME seconds before quit
STEP=1 # wait $STEP seconds
IFCONF="/sbin/ifconfig"
[ ! -x "/sbin/ifconfig" ] &&IFCONF=`type ifconfig | awk '{print $NF}' | sed 's/(\|)//g'`[ "$1" != "" ] && IF=$1
[ "$2" != "" ] && TIME=$2
[ "$3" != "" ] && STEP=$3## ========================================= ##
## DO NOT NEED CHANGE ##
## ========================================= ##export LC_ALL=Cshow_sum()
{#printf "\n%s\n" "[`date +'%Y-%m-%d %H:%M:%S'`](END)"echo echo#printf "%d seconds,\n" $RUN#printf "rx from %d to %d\n" $RX_I $RX#printf "tx from %d to %d\n" $TX_I $TXecho '-----------------------------------'printf "| | TOTAL(K) | AVG(K/S) |\n"echo '|---------------------------------|'printf "|RX |%12d |%10d | runs %d seconds\n" \$(( (RX-RX_I)/1024 )) $(( (RX-RX_I)/1024/$RUN )) \$RUNprintf '|---------------------------------| rx from %d to %d\n' \$RX_I $RXprintf "|TX |%12d |%10d | tx from %d to %d\n" \$(( (TX-TX_I)/1024 )) $(( (TX-TX_I)/1024/$RUN )) \$TX_I $TXecho '-----------------------------------'exit 0
}trap show_sum INT
# stty intr ^CTX_OLD=0
RX_OLD=0echo
echo " IF: $IF TIME: ${TIME}s (step=${STEP}s) (down/up)"
echo '----------------------------------------------------------'while [ 1 ]
doLINE=`$IFCONF $IF | grep "RX packets"`RX=`echo $LINE | cut -d ' ' -f5 | awk '{print $1}'`LINE=`$IFCONF $IF | grep "TX packets"`TX=`echo $LINE | cut -d ' ' -f5 | awk '{print $1}'`if [ "$RX_OLD" -eq "0" -a "$TX_OLD" -eq "0" ] thenRX_I=$RX; TX_I=$TX; RX_OLD=$RX; TX_OLD=$TX; RUN=0sleep $STEPcontinuefiRUN=$((RUN+STEP))if [ $RUN -ge $TIME ]thenshow_sumbreakfiRX_SUB=`expr $RX - $RX_OLD`TX_SUB=`expr $TX - $TX_OLD`RX_SUB=`expr $RX_SUB / $STEP / 1024`TX_SUB=`expr $TX_SUB / $STEP / 1024`RX_OLD=$RXTX_OLD=$TXprintf "%s%-10s" "[`date +'%Y-%m-%d %H:%M:%S'`]" "($((TIME-RUN)))"printf "%10d%10d (K/S)\n" $RX_SUB $TX_SUBsleep $STEPdone
linux测网速几种方式相关推荐
- linux测量某个ip的网速,linux下测网速
安装: $ sudo apt install speedtest-cli 测网速 $ speedtest 具体如下: $ speedtest Retrieving speedtest.net conf ...
- iOS 仿看了吗应用、指南针测网速等常用工具、自定义弹出视图框架、图片裁剪、内容扩展等源码...
iOS精选源码 扩展内容的cell - folding-cell 一个近乎完整的可识别中国身份证信息的Demo 可自动快速... JPImageresizerView 仿微信的图片裁剪 带年月和至今以 ...
- Ubuntu 测网速
Ubuntu 测网速 学自:http://os.51cto.com/art/201401/428339.htm 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为&quo ...
- 测网速-在线网速测试原理及代码
很多人想知道自己的网速怎么样,就会想办法测试,现在百度应用里就有很多这样的应用 简单介绍一种测网速的方法及代码,现在很多网站的测速方法都用这个,在线网速测试:http://tqybw.net/wang ...
- 关键时刻卡成狗,测网速要成上网必备动作了?
你有没有遇到过类似的"人在囧途"的经历?在移动办公的路上,老板突然找你开会,但是视频会议体验非常不流畅,重要的信息无法传达,错过了无数重要的信息? 其实在使用各种应用的时候,关键时 ...
- 电脑如何测网速_【网络调试】网络速度检测工具有哪些?这五款工具让你随时掌控网速...
wifi测试软件有哪些?WiFi信号和声音一样,强弱都是可以测量的,检测WiFi的方法有很多,作为普通的家庭用户,我们有时需要测试WiFi的速度.信号强度.周围WiFi干扰等等,那么wifi信号如何检 ...
- 有什么软件可以测试电脑的网速,电脑测网速软件哪个好 轻松测试网络性能
电脑测网速软件是一款可以帮助小伙伴们轻松测试电脑网络状况的软件,可以帮助用户轻松测试自己的网络情况,让测速更加简单便捷.现在市面上的软件有很多,很多小伙伴都不知道该怎么选择,所以今天小编就为大家找来了 ...
- 网络测试软件多少算快,手机怎么测网速多少兆 用手机测网速准吗
现在的手机用户随时随地都是拿着手机在上网的,可是连接无线网络的情况下,有时会出现页面出来,视频卡顿等现象,特别是用手机玩游戏的时候,碰到卡顿的情况会让人觉得烦心,那么这时我们要是想知道此时的手机网速是 ...
- 教你如何提高网速(3种)
教你如何提高网速(3种) 这个调节,也是目前网吧网管员必学的技术.调节之后,你电脑上网速度提高20%,可惜只支持XP系统, 1使用宽带上网的自然比普通拨号的上网快了很多,可是WINDOWS XP系统 ...
最新文章
- 网络配置——Linux入门到精通的难关之一
- php5.5 反序列化利用工具_记一次Spring Devtools反序列化利用
- Java Collections.sort方法对list集合排序
- 五种方法查看Ubuntu/Redhat等Linux系统版本号等系统信息
- 【STM32】SPI简介
- mybatis-MyBatis-Plus
- android权限 启动失败,Android 6.0打开失败:EACCES(权限被拒绝)
- linux oracle手动启动两个实例
- 荣耀v40pro可以用鸿蒙系统,荣耀V40Pro快来了!麒麟9000+120Hz+鸿蒙系统,价格感人...
- oracle timestamp计算两分钟前_阿里数据库真的超过Oracle了么?
- 使用MATLAB转换图片为数据进行vga显示
- php框架 路由_PHP框架开发之Route路由简单实现
- macos catalina cdr下载_这个开源神器可快速帮你安装 MacOS 虚拟机
- AI智能电话机器人源码搭建的原理
- java pkcs8_java中公钥,私钥,pkcs1格式,pkcs8格式互转
- SPSS实现多元方差分析
- IPSAN与FCSAN存储结构的区别
- 启发式搜索A * 算法
- matlab中角度,利用 matlab 计算各种角度
- 【02】制作第一个zblog模板第二期,熟悉模板所有的开发运行和调试机制·提前做好所有纯html页面