`
raojl
  • 浏览: 208850 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取硬盘和网卡流量

 
阅读更多
#include <sys/vfs.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <string>
#include <assert.h>

using std::string;

string DiskCapacity(const string &path)
{
    assert(path.size() > 0);
    char disk_capacity[128];
    struct statfs st;
    int ret = statfs(path.c_str(), &st);
    if (ret == 0) {
		float freeCap = (1.0 * st.f_bsize * st.f_bavail) / (1024*1024*1024);
		float totalCap = (1.0 * st.f_bsize * st.f_blocks) / (1024*1024*1024);
		snprintf(disk_capacity, 128, "%.2f", freeCap);

    } else  {
        return "0";
    }

	return string(disk_capacity);
}

int64_t NetworkLoad()
{
	int64_t recv_bytes = 0;
	int64_t ethX_count = 0;
	size_t len = 0;
	ssize_t read;

	FILE* fp;
	fp = fopen("/proc/net/dev", "r");
	if (fp == NULL) {
	   printf("open /proc/net/dev fail errmsg=%s", strerror(errno));
           return 0;
	}

	char * line = NULL;
	while ((read = getline(&line, &len, fp)) != -1) {
		string line_str = line;
		string::size_type eth_pos;
		if ( (eth_pos = line_str.find("eth") ) != string::npos ) {
			string::size_type space_pos_t =  line_str.find(' ', eth_pos + 5);
			if (space_pos_t != string::npos) {
				recv_bytes += atol(line_str.substr(eth_pos + 5, space_pos_t - eth_pos - 5).c_str());
			}
			ethX_count++;
		}
	}
	if (line) 
		free(line);

	fclose(fp);

	return recv_bytes / ethX_count ; 
}

int main(int argc,char* argv[])
{
	printf("%s,%d", DiskCapacity("/").c_str(), NetworkLoad()/1024 );

}

 

分享到:
评论

相关推荐

    网卡IP流量监测工具

    "网卡IP流量监测工具"是这样一种实用软件,它专注于提供对计算机系统资源,特别是网卡流量的实时监控。通过该工具,我们可以获取到CPU使用率、内存占用、硬盘读写状况以及网络连接状态等关键信息,帮助我们更好地...

    C# 获取网络流量和硬盘信息

    在C#编程中,获取网络流量和硬盘信息是系统监控和性能分析的重要组成部分。下面将详细阐述如何使用C#来实现这些功能。 首先,我们关注网络流量的获取,包括上传和下载的数据。在Windows系统中,可以使用`System.Net...

    雅黑PHP探针

    有一个负责的站长,会对探针进行长期支持和更新。 用于Linux系统(不推荐使用于Windows系统)。... 注意:有些服务器做了权限设置,禁止PHP读取硬件信息,所以无法显示内存、硬盘、和网卡流量等信息,查看原因

    获取系统信息(cpu,内存,硬盘等。。。)的第三方jar包(sigar.jar)

    - 网络流量统计:进站和出站的字节数、数据包数。 - 网络连接信息:查看活跃的TCP/UDP连接状态。 5. **其他系统信息**: - 操作系统信息:包括版本、架构等。 - 进程列表:获取系统上运行的所有进程的信息,如...

    Qt linux获取cpu使用率、内存、网络收发速度、磁盘读写速度、磁盘剩余空间

    在Linux系统中,使用Qt库开发应用程序时,可以利用各种系统接口来获取CPU使用率、内存占用、网络流量、磁盘I/O速度以及磁盘剩余空间等关键信息。以下将详细讲解如何通过Qt来实现这些功能。 1. CPU使用率: 在Linux...

    基于java通过第三方jar包sigar的支持,完成对服务器系统的参数监控,包括CPU、内存、硬盘以及网络流量的实时监控

    【作品名称】:基于java通过第三方jar包sigar的支持,完成对服务器系统的参数监控,包括CPU、内存、硬盘以及网络流量的实时监控 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、...

    雅黑PHP探针 v0.4.7.zip

    雅黑科技探针最大的优点:每秒更新,不用刷网页。...注意:有些服务器做了权限设置,禁止PHP读取硬件信息,所以无法显示内存、硬盘、和网卡流量等信息   使用条款 1.该软件免费使用. 2.禁止未经通告的衍生版本.

    雅黑PHP探针 v0.4.7

    有一个负责的站长,会对探针进行长期支持和更新。... 注意:有些服务器做了权限设置,禁止PHP读取硬件信息,所以无法显示内存、硬盘、和网卡流量等信息使用条款 1.该软件免费使用. 2.禁止未经通告的衍生版本.

    雅黑PHP探针(手机版) 0.1.1.zip

    有些服务器做了权限设置,禁止PHP读取硬件信息,所以无法显示内存、硬盘、和网卡流量等信息。 公告: 最近发现有很多人对本探针很感兴趣,在此表示感谢。如果你修改本探针自己用是没问题的,本来就是开源的东西...

    java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)

    这对于监控网络流量和检测网络问题非常有帮助。 4. **I/O信息**:`IOInfo`类通常会提供硬盘的读写速率,以及磁盘的使用情况。这对于优化I/O密集型操作和预测磁盘性能瓶颈很有价值。 在实际使用中,你可能需要创建...

    C# 通过读取windows性能计数器监控系统运行参数

    综上所述,通过C#读取Windows性能计数器是一项强大的技术,它允许开发者和系统管理员深入了解系统的运行状态,从而优化性能,及时发现并解决问题。通过熟练掌握这一技能,你可以创建出能够自我监控的应用程序,提升...

    雅黑PHP探针 版本0.4.7

    ... 雅黑科技探针最大的优点:每秒更新,不用刷网页。... 注意:有些服务器做了权限设置,禁止PHP读取硬件信息,所以无法显示内存、硬盘、和网卡流量等信息    使用条款  1.该软件免费使用.  2.禁止未经通告的衍生

    CPDH 计算网卡速率、拨号连接速率、CPU占用率的公共库,可以获得任务管理器中所有的统计参数

    CPDH 是一个面向计算网卡速率、拨号连接速率以及CPU占用率的公共库,它提供了获取计算机系统中各种性能参数的功能,类似于专业工具如DUMeter和NetMeter。这个库是基于PDH(Performance Data Helper)API进行封装的,...

    系统硬件信息查看器

    通过`WinPCap`库或者Windows的`WMI`(Windows Management Instrumentation)服务,可以获取到网卡的物理地址、连接速度、驱动信息,甚至网络流量统计,这对于网络故障排查和网络性能分析非常有用。 总的来说,...

    USB网卡驱动dm9601

    在深入探讨这个驱动程序之前,我们首先要理解USB网卡和驱动程序的基本概念。 USB(通用串行总线)是一种标准化的接口,允许设备与计算机之间进行数据交换。USB网卡,也称为USB以太网适配器,是一种外置网络接口卡,...

    2020年计算机软考网络管理员考点解析:局域网维护注意事项.pdf

    《2020年计算机软考网络管理员考点解析:局域网维护注意事项》这份文档主要阐述了局域网维护中的几个关键点,包括服务器硬盘配置、设备连接规则、网络布线标准以及接地要求和网卡的选择。以下是这些知识点的详细说明...

    T610(BCM5709C)网卡驱动for2003(64位)

    它支持多种网络协议,如TCP/IP、UDP等,能有效管理网络流量,确保网络连接的稳定性和速度。此外,它还具有硬件加速功能,能够减轻CPU处理网络任务的压力,提高系统整体性能。 在Windows Server 2003 64位操作系统...

    DIY服务器主要配置详解.doc

    对于静态页面为主的网站,硬盘速度可能不是首要考虑因素,但如果是图片或文件密集型的网站,SCSI硬盘因其高转速和大缓存,能提供更快的文件读取速度和更好的稳定性。SATA硬盘因其成本较低,常用于入门级服务器,但...

    锐起极速无盘网吧配置

    游戏服务器的两个320G硬盘组成0陈列,用于存储单机游戏和网络游戏,并且配置了6GB的supercache读取缓存,以提升读取速度。 实测结果显示,该无盘配置的启动时间与有盘系统相近,约30-60秒。进入游戏如穿越火线的...

    网管在局域网维护工作中的注意事项.docx

    优先选择转速快(例如7200 RPM或更高)且容量大的硬盘,因为高转速能加速数据读取,提升网络访问速度。推荐使用SCSI接口的硬盘,其数据传输速度优于IDE或EIDE接口。若条件允许,安装硬盘阵列卡可以显著提高硬盘的...

Global site tag (gtag.js) - Google Analytics