zoukankan      html  css  js  c++  java
  • iphone获取当前流量信息

    通过读取系统网络接口信息,获取当前iphone设备的流量相关信息,统计的是上次开机至今的流量信息. 
    1. [代码][C/C++]代码    
    -(void)checkNetworkflow{
        struct ifaddrs *ifa_list = 0, *ifa;
        if (getifaddrs(&ifa_list) == -1)
        {
            return;
        }
        
        uint32_t iBytes     = 0;
        uint32_t oBytes     = 0;
        uint32_t allFlow    = 0; 
        uint32_t wifiIBytes = 0;
        uint32_t wifiOBytes = 0;
        uint32_t wifiFlow   = 0;
        uint32_t wwanIBytes = 0;
        uint32_t wwanOBytes = 0;
        uint32_t wwanFlow   = 0;
        struct timeval time ;
        
        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. 
            // network flow
            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;
                allFlow = iBytes + oBytes;
                time = if_data->ifi_lastchange;
            }
            
            //wifi flow
            if (!strcmp(ifa->ifa_name, "en0"))   
            {  
                struct if_data *if_data = (struct if_data *)ifa->ifa_data;  
                
                wifiIBytes += if_data->ifi_ibytes;  
                wifiOBytes += if_data->ifi_obytes; 
                wifiFlow    = wifiIBytes + wifiOBytes;
            }  
            
            //3G and gprs flow
            if (!strcmp(ifa->ifa_name, "pdp_ip0"))   
            {  
                struct if_data *if_data = (struct if_data *)ifa->ifa_data;  
                
                wwanIBytes += if_data->ifi_ibytes;  
                wwanOBytes += if_data->ifi_obytes;  
                wwanFlow    = wwanIBytes + wwanOBytes;
            }   http://www.huiyi8.com/webyuanma/
        }
        freeifaddrs(ifa_list);   网页特效代码 
        changeTime.text     = [NSString stringWithFormat:@"%s",ctime(&time)];    
        receivedBytes.text  = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",iBytes]];
        sentBytes.text      = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",oBytes]];
        networkFlow.text    = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",allFlow]];
        wifiReceived.text   = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",wifiIBytes]];
        wifiSent.text       = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",wifiOBytes]];
        wifiBytes.text      = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",wifiFlow]];
        wwanReceived.text   = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",wwanIBytes]];
        wwanSent.text       = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",wwanOBytes]];
        wwanBytes.text      = [self bytesToAvaiUnit:[NSString stringWithFormat:@"%u",wwanFlow]];
    }

  • 相关阅读:
    0113-06-侯舒舒(作业-复盘分析)
    0113-06-侯舒舒(日报)
    总结
    0108-06-侯舒舒(日报)
    cobalt strike插件
    关于python安装后更新的一些问题
    常用dos命令
    curl命令用法
    2020/1/16
    2020/1/15
  • 原文地址:https://www.cnblogs.com/xkzy/p/3810838.html
Copyright © 2011-2022 走看看