博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何监控wifi,3g,gps的流量
阅读量:5938 次
发布时间:2019-06-19

本文共 1352 字,大约阅读时间需要 4 分钟。

-(void)checkNetworkflow{ struct ifaddrs *ifa_list = 0, *ifa; if (getifaddrs(&ifa;_list) == -1) { return; } uint32_t iBytes = 0; uint32_t oBytes = 0; uint32_t allFlow = 0; uint32_t wifiIBytes = 0; uint32_t wifiOBytes = 0; uint32_t wifiFlow = 0; uint32_t wwanIBytes = 0; uint32_t wwanOBytes = 0; uint32_t wwanFlow = 0; struct timeval time ; for (ifa = ifa_list; ifa; ifa = ifa->ifa_next) { if (AF_LINK != ifa->ifa_addr->sa_family) continue; if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING)) continue; if (ifa->ifa_data == 0) continue; // Not a loopback device. // network flow if (strncmp(ifa->ifa_name, "lo", 2)) { struct if_data *if_data = (struct if_data *)ifa->ifa_data; iBytes += if_data->ifi_ibytes; oBytes += if_data->ifi_obytes; allFlow = iBytes + oBytes; time = if_data->ifi_lastchange; } //wifi flow if (!strcmp(ifa->ifa_name, "en0")) { struct if_data *if_data = (struct if_data *)ifa->ifa_data; wifiIBytes += if_data->ifi_ibytes; wifiOBytes += if_data->ifi_obytes; wifiFlow = wifiIBytes + wifiOBytes; } //3G and gprs flow if (!strcmp(ifa->ifa_name, "pdp_ip0")) { struct if_data *if_data = (struct if_data *)ifa->ifa_data; wwanIBytes += if_data->ifi_ibytes; wwanOBytes += if_data->ifi_obytes; wwanFlow = wwanIBytes + wwanOBytes; } } freeifaddrs(ifa_list); }    

转载于:https://www.cnblogs.com/liuxingzi/archive/2013/05/09/3404346.html

你可能感兴趣的文章
Linux SAMBA服务器重启后自动挂载失效
查看>>
top动态查看负载
查看>>
oracle11g 静默安装
查看>>
Linux 进程管理命令之jobs
查看>>
Exchange server 2013(十二)IRM故障排除
查看>>
Oracle-merge用法详解(不稳定)
查看>>
windos下mysql迁移到LINUX数据冷备份及恢复
查看>>
centos7 搭建 SVN 服务器
查看>>
第七节 项目沟通管理、项目合同管理
查看>>
我的地盘我做主(一)——RAID
查看>>
android SQLite数据库使用实例
查看>>
vCloud Director Enterprise Cloud 5.5部署(二)
查看>>
整理NSDate,NSTimeInterval和时间间隔问题
查看>>
图片压缩
查看>>
深入理解程序设计-使用Linux 32bit 汇编语言
查看>>
监控网络流量
查看>>
linux下安装zookeeper(集群版)
查看>>
计算机基础知识
查看>>
低调的张近东高调督战,苏宁这次是真的要拼了
查看>>
使用Hibernate框架操作Mysql数据库时,插入中文字符乱码!已解决!
查看>>