//

//  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. JVM问题诊断常用命令:jinfo,jmap,jstack

    1.jinfo 描述:输出给定 java 进程所有的配置信息.包括 java 系统属性和 jvm 命令行标记等. 用法: jinfo [ option ] pid jinfo [ option ] e ...

  2. php使用iconv进行从utf-8转为gb2312字符编码出错或截断的解决方案

    iconv("GB2312","UTF-8",$text);修改为以下其中一种:1.iconv("UTF-8","GBK" ...

  3. OC之消息调用过程

    Bird * aBird = [[Bird alloc] init]; [aBird fly]; 中对 fly 的调用,编译器通过插入一些代码,将之转换为对方法具体实现 IMP 的调用,这个 IMP ...

  4. js中的随机数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 27.编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish 和Dog,定义主类E,在其main方法中分别创建其对象并测试对象的特性。

    ///Animal类 package d922A; public class Animal { private String kind; public String getKind() { Syste ...

  6. Python in minute

    Python 性能优化相关专题:    https://www.ibm.com/developerworks/cn/linux/l-cn-python-optim/   Python wikipedi ...

  7. First blogs start

    这是我第一次写博客笔记,为了更好的成长,从现在开始我的博客记录. 我是从事linux运维的,到目前为止,已经有2年的工作经验了. 希望从此以后我能够坚持每天记录下点点滴滴.

  8. java 图形界面

    1.创建一个窗口框架 /** * java 用户界面框架 * 2016/5/10 */ package org.windows; import javax.swing.*; public class ...

  9. C#生成word

    using Microsoft.Office.Interop.Word; using System; using System.Collections.Generic; using System.Co ...

  10. RSA 公私钥 互换问题

    关于 RSA,我的理解是: 按定义的话,公私钥是可以互换的 问题是常见的实现里面,保存“私钥”的那个数据结构或者文件,里面除了私钥所必需的那一对数之外,还有额外的信息(足以算出公钥来),所以绝对不能把 ...