//

//  flowStatis.c

//  Test

//

//  Created by iXcoder on 12-7-19.

//  Copyright (c) 2012年 iXcoder. All rights reserved.

//

#import <Foundation/Foundation.h>

#include <stdio.h>

#include <ifaddrs.h>

#include <sys/socket.h>

#include <net/if.h>

//3G流量统计

int getGprs3GFlowIOBytes() {

struct ifaddrs *ifa_list= 0, *ifa;

if (getifaddrs(&ifa_list)== -1) {

return 0;

}

uint32_t iBytes = 0;

uint32_t oBytes = 0;

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;

if (!strcmp(ifa->ifa_name,"pdp_ip0")) {

struct if_data *if_data = (struct if_data*)ifa->ifa_data;

iBytes += if_data->ifi_ibytes;

oBytes += if_data->ifi_obytes;

NSLog(@"%s :iBytes is %d, oBytes is %d",ifa->ifa_name, iBytes, oBytes);

}

}

freeifaddrs(ifa_list);

return iBytes + oBytes;

}

//Wifi流量统计

- (long long int)getInterfaceBytes {

struct ifaddrs *ifa_list = 0, *ifa;

if (getifaddrs(&ifa_list) == -1) {

return 0;

}

uint32_t iBytes = 0;

uint32_t oBytes = 0;

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;

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;

NSLog(@"%s :iBytes is %d, oBytes is %d", ifa->ifa_name, iBytes, oBytes);

}

}

freeifaddrs(ifa_list);

return iBytes+oBytes;

}

将流量值写入文件,或SQLite,或使用CoreData,方便按天、周、月统计。

wifi 3G 流量的更多相关文章

  1. WiFi入口流量O2O微应用平台

    WiFi入口流量O2O微应用平台 随着智能手机一年比一年销量大好,传统的互联网的流量争夺战场已经转向了移动互联网,各大巨头纷纷出招,智能wifi路由器就是其中最重要的一块战略高地.所谓的智能路由器,解 ...

  2. Android之把手机的3g流量共享出来让其他人连接这个wifi

    转自:http://blog.csdn.net/luoboo525/article/details/7883998   亲测可用 用过快牙的朋友应该知道它们在两天设备之间传输文件的时候使用的是wifi ...

  3. iOS开发之WIFI,3G/4G两种网络同时使用技巧

    最近遇到一个比较奇葩的需求:App与硬件通过WiFi LAN通信, 同时App需要与服务器通过3G/4G WAN通信,如下图: 众所周知,手机同时打开WiFi和3G时候,会优先走WiFi.这个该如何实 ...

  4. js 判断 wifi and 流量

    var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection || { ...

  5. 3G? 2G? 2.5G? 4G? 与 WIFI, GPRS,CDMA 3G无线上网

    首先说说无线上网有哪几种形式? WIFI, GPRS, CDMA 3G无线上网 1>wifi全称wireless fidelity,是当今使用最广的一种无线网络传输技术.实际上就是把有线网络信号 ...

  6. iOS开发 - 检测网络状态(WIFI、2G/3G/4G)

    本文转载至 http://blog.csdn.net/wangzi11322/article/details/45580917 检测网络状态 在网络应用中,需要对用户设备的网络状态进行实时监控,目的是 ...

  7. WIFI热点

    1.wifi热点是指把手机的接收GPRS.3G或4G信号转化为wifi信号再发出去,这样手机就成了一个WIFI热点. 2.手机必须有无线AP功能,才能当做热点.有些系统自带建热点这个功能比如IOS(比 ...

  8. iOS流量监控

    http://code4app.com/snippets/one/iOS%E6%B5%81%E9%87%8F%E7%9B%91%E6%8E%A7/5020ba7a6803fae325000000 1. ...

  9. 公交wifi运营平台分析

    一.前言背景 昨晚下午,老板让看一些车载公交wifi后台管理的一些东西,这个随着移动端设备而兴起的wifi战,慢慢的也会越演越烈. 现在于很多人在外面的时候,进入一家店首先看的不是菜单,而是问一句“你 ...

随机推荐

  1. linux 移除svn文件夹

    find . -name .svn -type d -exec rm -fr {} \;

  2. [转]最常见的20个jQuery面试问题及答案

    毫无疑问,jQuery给了JavaScript急需的提振,这是一门如此有用,但同时总是常常被低估的语言. 在 jQuery 粉墨登场之前,我们曾经会写出冗长的JavaScript代码,不仅仅为更大型的 ...

  3. vs2015打开cshtml文件失败的解决方法

    最近不知道为什么,用vs2015打开cshtml识图文件的时候会报错.也不知道是什么原因,google之后得到解决方法如下: Close VS Delete the content of %Local ...

  4. Arch安装fcitx输入法

    安装fcitx,安装gtk.qt模块. [root@ARCH ~]# pacman -S fcitx-im :: There are 4 members in group fcitx-im: :: R ...

  5. docker network

    前言:前面的部分一直都是单机跑docker,但实际生产环境不可能只用一台来跑.肯定会用到多台,因为他们都是内部私有ip,那么多台主机之间的容器如何通信?这个是个很头疼的问题!目前主流几种方法如下: 1 ...

  6. php pdo and pdostatement

    Relationship between PDO class and PDOStatement class   up vote2down votefavorite   I'm a php and my ...

  7. 利用redis做频率限制第一篇

    public Result checkRateLimit(String clientIp, int ipTime, int ipCount) { // 每个ip的redis的key都不一样 Strin ...

  8. 使用CFile生成log文件的方法

    下面实例是在退出程序点击退出按钮时,在主程序的根目录下生成一个Log记录,用来记录程序的退出时间,具体实现代码与调试代码如下: void CDebugDlg::OnClose(){ // TODO: ...

  9. allegro 导Gerber文件

    今天抽空好好整理了一下有关Allegro出Gerber文件文档,此文档在网上搜到的基础上进一步完善,把每个需要注意的地方都用红色字体框出 http://files.cnblogs.com/files/ ...

  10. 第十九节,基本数据类型,集合set

    集合set,无序,是不允许重复内容的,也就是不允许重复元素,如果有重复,会自动忽略,可接收可迭代类型 (一般用于需要判断和处理交集时候用到) 集合与字典的区别是,集合没有键只有值,字典是有键的字典是一 ...