iphone获取当前流量信息
通过读取系统网络接口信息,获取当前iphone设备的流量相关信息,统计的是上次开机至今的流量信息.
代码 悦德财富:https://yuedecaifu.com
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | -(void)checkNetworkflow{    structifaddrs *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;    structtimeval 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))         {            structif_data *if_data = (structif_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"))           {              structif_data *if_data = (structif_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"))           {              structif_data *if_data = (structif_data *)ifa->ifa_data;                          wwanIBytes += if_data->ifi_ibytes;              wwanOBytes += if_data->ifi_obytes;              wwanFlow    = wwanIBytes + wwanOBytes;        }     }    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]];} | 
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号