文档章节

iOS流量统计以及判断网络类型,网络状态

山里来的
 山里来的
发布于 2017/04/27 09:59
字数 202
阅读 47
收藏 0

判断网络类型 http://www.fengfly.com/plus/view-210762-1.html

流量统计

#include <arpa/inet.h> 
#include <net/if.h> 
#include <ifaddrs.h> 
#include <net/if_dl.h>

+ (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=[NSString stringWithFormat:@"%s",cursor->ifa_name];
            NSLog(@"ifa_name %s == %@\n", cursor->ifa_name,name);
            // names of interfaces: en0 is WiFi ,pdp_ip0 is WWAN 
            if (cursor->ifa_addr->sa_family == AF_LINK) 
            {
                if ([name hasPrefix:@"en"]) 
                {
                    networkStatisc = (const struct if_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 struct if_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

© 著作权归作者所有

共有 人打赏支持
下一篇: webview添加cookie
山里来的
粉丝 8
博文 99
码字总数 18694
作品 0
长沙
私信 提问
react native之获知设备联网或离线的状态信息。

NetInfo模块可以获知设备联网或离线的状态信息。 IOS 以异步的方式判断设备是否联网,以及是否使用了移动数据网络。 - 设备处于离线状态。 - 设备处于联网状态且通过wifi链接,或者是一个iOS...

Chason-洪
2017/10/17
0
0
iOS源码补完计划--AFNetworking(二)

目录 前言 AFNetworkReachabilityManager.h AFNetworkReachabilityManager.m API注释Demo 参考资料 前言 AFNetworking源码第二篇 主要看了看AFNetworkReachabilityManager的内容 作为一个辅助...

kirito_song
2018/05/16
0
0
网易视频云开发教程

由于文档过多,本帖主要分享直播开发教程,网易视频云提供一对一技术支持,感兴趣的同学,2479775187qq交流。 一、使用流程 产品描述 网易视频云直播源自网易多年视频技术沉淀,基于专业的跨...

郑岐-网易云
2016/07/10
1K
3
iOS 应用流量统计

一个ios应用如何统计网络流量,例如:QQ浏览器那样统计出本次使用软件所耗费的流量,统计耗费的流量。 之前没接触过,求大家指点,谢谢

李远超
2012/12/14
3.3K
1
iOS设备的流量分析:Remote Virtual Interface

想测试一下应用在网络传输层面的安全性。最直观的就是直接抓设备上的网络包了,查了一些方案,要么需要设备越狱,要么要装一堆东西,很麻烦。后来发现苹果官方已经提供了相应的方法,叫做“R...

木木情深
2014/02/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

图像库stb_image

https://github.com/nothings/stb 目前一般主流的图像格式也就是bmp,jpg,png,tga,dds,除了DDS一般是给DX用的,虽然一堆OpenGL程序也有用的,但是我一般只用png和tga, png不用说了,带a...

robslove
6分钟前
0
0
Spring 事务提交回滚源码解析

前言 在上篇文章 Spring 事务初始化源码分析 中分析了 Spring 事务初始化的一个过程,当初始化完成后,Spring 是如何去获取事务,当目标方法异常后,又是如何进行回滚的,又或是目标方法执行...

TSMYK
25分钟前
0
0
百度黄埔学院将培养一批首席AI架构师,为“国之重器”赋能

深度学习高端人才不仅是AI发展的重要养分,也是企业转型AI巨大推动力。2019年1月19日,百度黄埔学院——深度学习架构师培养计划在百度科技园举行开学典礼,深度学习技术及应用国家工程实验室...

深度学习之桨
51分钟前
2
0
扒站wget仿站

wget -c -r -p -np -k http://xxx.com/xxx 其中: -c, --continue (断点续传) 接着下载没下载完的文件 -r, --recursive(递归) specify recursive download.(指定递归下载) -p, --page...

临江仙卜算子
53分钟前
2
0
Nextjs+React非页面组件SSR渲染

@随风溜达的向日葵 Nextjs Nextjs是React生态中非常受欢迎的SSR(server side render——服务端渲染)框架,只需要几个步骤就可以搭建一个支持SSR的工程(_Nextjs_的快速搭建见Next.js入门)...

随风溜达的向日葵
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部