iOS开发-获取网络流量

来源:互联网 发布:做梦醒来感觉很累 知乎 编辑:程序博客网 时间:2024/06/06 14:15

需要导入相应头文件


- (NSArray *)getDataCounters

{

    BOOL   success;

    structifaddrs *addrs;

    conststruct ifaddrs *cursor;

    conststruct if_data *networkStatisc;

    

    int WiFiSent =0;

    int WiFiReceived =0;

    int WWANSent =0;

    int WWANReceived =0;

    

    NSString *name=[[NSStringalloc]init];

    

    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);

            // en0 表示 WiFi ,pdp_ip0 表示 WWAN

            

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

            {

                if ([namehasPrefix:@"en"])

                {

                    networkStatisc = (conststruct 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 ([namehasPrefix:@"pdp_ip"])

                {

                    networkStatisc = (conststruct 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 [NSArrayarrayWithObjects:[NSNumbernumberWithInt:WiFiSent], [NSNumbernumberWithInt:WiFiReceived],[NSNumbernumberWithInt:WWANSent],[NSNumbernumberWithInt:WWANReceived], nil];

}

0 0
原创粉丝点击