ios 截取手机流量_[转载]iOS获取设备流量使用情况iPhoneDataUsageTrack

获取的是开机后WIFI,3G/GPRS网络下使用流量(仅仅只能获取开机后的)

和一个应用"瓦力流量仪"类似.

瓦力流量仪的核心代码也就是这一段吧!

需要引入

#include

#include

#include

#include

+ (NSArray*)getDataCounters

{

BOOL   success;

struct ifaddrs *addrs;

const struct ifaddrs*cursor;

const struct if_data*networkStatisc;

int WiFiSent = 0;

int WiFiReceived = 0;

int WWANSent = 0;

int WWANReceived = 0;

NSString *name=[[[NSString alloc]init]autorelease];

success =getifaddrs(&addrs) ==0;

if (success)

{

cursor = addrs;

while(cursor != NULL)

{

name=[NSStringstringWithFormat:@"%s",cursor->ifa_name];

NSLog(@"ifa_name %s == %@n",cursor->ifa_name,name);

// names ofinterfaces: en0 is WiFi ,pdp_ip0 is WWAN

if(cursor->ifa_addr->sa_family == AF_LINK)

{

if ([name hasPrefix:@"en"])

{

networkStatisc =(const structif_data *) cursor->ifa_data;

WiFiSent+=networkStatisc->ifi_obytes;

WiFiReceived+=networkStatisc->ifi_ibytes;

NSLog(@"WiFiSent %d==%d",WiFiSent,networkStatisc->ifi_obytes);

NSLog(@"WiFiReceived %d==%d",WiFiReceived,networkStatisc->ifi_ibytes);

}

if ([name hasPrefix:@"pdp_ip"])

{

networkStatisc =(const structif_data *) cursor->ifa_data;

WWANSent+=networkStatisc->ifi_obytes;

WWANReceived+=networkStatisc->ifi_ibytes;

NSLog(@"WWANSent %d==%d",WWANSent,networkStatisc->ifi_obytes);

NSLog(@"WWANReceived %d==%d",WWANReceived,networkStatisc->ifi_ibytes);

}

}

cursor = cursor->ifa_next;

}

freeifaddrs(addrs);

}

return[NSArray arrayWithObjects:[NSNumber numberWithInt:WiFiSent],[NSNumber numberWithInt:WiFiReceived],[NSNumber numberWithInt:WWANSent],[NSNumber numberWithInt:WWANReceived], nil];

}

http://stackoverflow.com/questions/7946699/iphone-data-usage-tracking-monitoring

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值