`

Linux 查看网络流量实现代码 转

阅读更多

在GUI下面,有一大把的工具可以显示网络流量,那么,命令行下面怎么办?显然办法是有的,比如,ifconfig,Linux 查看网络流量会有这样的输出:
RX bytes:1224128649 (1.1 GiB) TX bytes:34114947 (32.5 MiB)。

过一会再看,数值有所变化,两者的差值就是过去一段时间的流量。可是,这也太不人性化了……正所谓自己动手,丰衣足食,我们自己来写一个Linux 查看网络流量脚本,实时显示并刷新!

Linux 查看网络流量脚本如下,还是哪句话,本人功力有限,写脚本的原则是够用就好。

 

  1. #!/bin/bash 
  2. if [ -n "$1" ]; then 
  3. eth_name=$1 
  4. else 
  5. eth_name="eth0"
  6. fi 
  7. i=0
  8. send_o=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'` 
  9. recv_o=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'` 
  10. send_n=$send_o 
  11. recv_n=$recv_o 
  12. while [ $i -le 100000 ]; do 
  13. send_l=$send_n 
  14. recv_l=$recv_n 
  15. sleep 1 
  16. send_n=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'` 
  17. recv_n=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'` 
  18. i=`expr $i + 1` 
  19. send_r=`expr $send_n - $send_l` 
  20. recv_r=`expr $recv_n - $recv_l` 
  21. total_r=`expr $send_r + $recv_r` 
  22. send_ra=`expr \( $send_n - $send_o \) / $i` 
  23. recv_ra=`expr \( $recv_n - $recv_o \) / $i` 
  24. total_ra=`expr $send_ra + $recv_ra` 
  25. sendn=`ifconfig $eth_name | grep bytes | awk -F \( '{print $3}' | awk -F \) '{print $1}'` 
  26. recvn=`ifconfig $eth_name | grep bytes | awk -F \( '{print $2}' | awk -F \) '{print $1}'` 
  27. clear 
  28. echo   "Last second   :    Send rate: $send_r Bytes/sec   Recv rate: $recv_r Bytes/sec   Total rate: $total_r Bytes/sec" 
  29. echo   "Average value:    Send rate: $send_ra Bytes/sec   Recv rate: $recv_ra Bytes/sec   Total rate: $total_ra Bytes/sec" 
  30. echo   "Total traffic after startup:     Send traffic: $sendn   Recv traffic: $recvn" 
  31. done 

 Linux 查看网络流量脚本(假设名叫traffic)默认显示eth0的流量,如果你有多个网卡,请将网卡作为参数传进去,比如:
./traffic eth1

运行结果如下:

Linux查看网络流量

 

分享到:
评论

相关推荐

    Linux下实现流量监测源代码

    本资源提供了一份适用于初学者的流量监测源代码,通过学习和实践,可以理解Linux网络监控的基本原理。 首先,我们需要了解Linux下常用的流量监测工具,如`ifconfig`、`netstat`、`iptables`等。这些命令行工具提供...

    深入理解LINUX网络内幕和LINUX网络栈实现源代码分析合本

    《深入理解LINUX网络内幕和LINUX网络栈实现源代码分析合本》是一本结合理论与实践,专门探讨Linux操作系统网络层实现的书籍。通过详细分析Linux网络协议栈的源代码,读者可以深入理解Linux网络工作的核心机制。本书...

    linux 带宽获取 代码实现

    以下是一个基本的Shell脚本示例,演示如何解析 `/proc/net/dev` 文件并计算当前的网络流量: ```bash #!/bin/bash # 读取/proc/net/dev文件 read -r header # 遍历文件中的每一行,除首行(标题行) while read ...

    c++ Linux 流量统计,抓包重组

    标题 "c++ Linux 流量统计,抓包重组" 涉及到的是在Linux环境中使用C++语言开发网络流量监控程序的技术。该程序的主要功能是捕获网络接口上的数据包,对其进行重组和解析,然后将处理结果转换为JSON格式,并存储到...

    进程级别的网络流量监控

    6. `Process-level-network-monitor-master`:这个项目可能是一个专门用于进程级别网络流量监控的开源工具,具体功能需要查看源代码或其文档来了解。 使用这些工具时,我们需要注意以下几点: - 定期收集和分析数据...

    Linux网络体系结构 Linux内核中网络协议的设计与实现

    《Linux网络体系结构:Linux内核中网络协议的设计与实现》这本书深入探讨了Linux操作系统内核中的网络架构和协议栈的实现。Linux网络体系结构是理解操作系统如何处理网络通信的关键,它涉及到网络协议的各个层次,...

    Delphi网络流量监控源代码

    本篇文章将详细探讨Delphi网络流量监控的实现原理、核心知识点以及源代码解析。 1. 网络流量监控基础 - 网络流量:指的是在网络中传输的数据量,包括上传和下载的数据。 - 端口监控:通过监听特定端口来捕获网络...

    Android网络流量监听器源代码

    "Android网络流量监听器源代码"是实现这一功能的关键,它通常包含一系列用于检测和记录应用程序网络活动的类和方法。 在Android系统中,网络流量的监控主要涉及到以下几个核心知识点: 1. **BroadcastReceiver**: ...

    linux网络协议栈完全实现

    总之,Linux网络协议栈的完全实现涉及众多细节和技术,从协议解析、数据封装、错误处理到性能优化,都需要深入理解才能驾驭。通过阅读和研究经典代码,我们可以更深入地理解网络协议的工作原理,并提升系统级编程...

    linux下arp欺骗源代码

    使用arpspoof,攻击者可以轻松地拦截网络流量,进行嗅探和数据操纵。 4. Linux编程:理解`arpspoof.c`源代码需要具备一定的C语言编程基础和网络编程知识。在Linux环境下,开发者可以直接利用系统调用来实现底层网络...

    Linux下TCP通信测试代码,包含服务端和客户端

    这份代码示例可以帮助开发者理解和学习如何在Linux环境下使用C语言或者C++实现TCP通信,这对于系统编程、网络编程的学习和实践非常有价值。通过阅读和运行这些代码,你可以了解到TCP通信的基本流程、套接字API的使用...

    linux 平台的 libpcap 源代码

    **Linux平台上的libpcap库详解** libpcap是一个开源的网络数据包捕获库,广泛应用于各种操作系统,包括Linux。...对于希望深入研究Linux网络操作的人员来说,掌握libpcap源代码和相关应用至关重要。

    linux 上用C++实现的网络嗅探器

    在实现过程中,你可能会遇到权限问题,因为监听所有网络流量通常需要root权限。确保你的程序以超级用户身份运行,或者使用`setcap`命令为程序添加必要的能力。 最后,压缩包中的“网络嗅探器”很可能包含了实现上述...

    网络编程与分层协议设计基于linux平台实现

    以下是对“网络编程与分层协议设计基于Linux平台实现”这一主题的详细解析。 首先,网络编程涉及的主要知识点包括套接字编程、TCP/IP协议族以及并发处理。套接字是网络编程的基本接口,通过创建、绑定、监听和接受...

    cacti源代码功能非常强大的网络流量监控与分析系统

    Cacti是一款基于Web界面的开源网络流量监控与分析系统,其源代码可供用户自定义和扩展,以满足各种网络管理需求。Cacti的核心功能包括数据采集、数据存储、图表生成以及警报通知,为网络管理员提供了全面的网络性能...

    Linux多线程实现令牌桶流量控制

    本文将深入探讨如何在Linux环境下利用多线程技术来实现令牌桶流量控制。 首先,我们要理解令牌桶算法的基本原理。令牌桶算法是一个允许突发数据传输并同时保持平均传输速率的机制。桶中存储一定数量的令牌,只有当...

    linux内核0.11代码,其中含有我的使用TC的描述文件

    你可以通过阅读源代码,尤其是TC相关的部分,深入理解Linux内核在网络流量控制方面的实现,同时也能追溯到Linux发展的早期阶段,领略其设计思想和演进历程。无论你是内核开发者还是系统管理员,这份资料都是一份宝贵...

    网络流量控制系统在开源路由器上的实现.pdf

    总结而言,该文档详细介绍了如何利用开源路由器固件(如DD-WRT)实现网络流量的统计和控制系统,强调了开源路由器在个性化定制流量控制功能方面的优势,并通过嵌入式Linux编程技术实现了网络流量控制功能,有效防范...

Global site tag (gtag.js) - Google Analytics