iOS 获取网络流量

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(getInternet) userInfo:nil repeats:YES];

[timer fireDate];


- (void)getInternet {
    long long heheeh = [self getInterfaceBytes];
   
    NSLog(@"heheeh:-- %lld", heheeh);
}

/*获取网络流量信息*/

- (long long) 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;
       
        /* Not a loopback device. */
       
        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;
        }
    }
   
    freeifaddrs(ifa_list);
   
    NSLog(@"\n[getInterfaceBytes-Total]%d,%d",iBytes,oBytes);
   
    return iBytes + oBytes;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近做视频遇到了一个需求就是将流量放在视频上方展示 于是2开始各种百度最后终于解决直接上代码吧 #include....
    严木木阅读 9,320评论 10 4
  • 开发中用到获取网速的地方,应该就两种: 1、下载速度,这种可以直接在接受数据的地方统计计算。这个就不讲了。 2、获...
    罗火火阅读 8,461评论 1 4
  • 1.NSLog(@"%@",[[UIDevice currentDevice] systemVersion]);/...
    Y像梦一样自由阅读 13,659评论 3 12
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,916评论 0 9
  • 艺术的尽头里 风吹过来 又吹过去 我脱光 面朝大地躺着 疯狂的叫声记录了 我与这个世界的交合。
    留子尧阅读 3,803评论 0 2

友情链接更多精彩内容