zoukankan      html  css  js  c++  java
  • iOS 获取流量

    #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];
        
        success = getifaddrs(&addrs) == 0;
        if (success)
        {
            cursor = addrs;
            while (cursor != NULL)
            {
                name=[NSString stringWithFormat:@"%s",cursor->ifa_name];
                NSLog(@"ifa_name %s == %@
    ", 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];
    }
  • 相关阅读:
    敲七
    二维指针数组**p
    食物链(待解决)
    蛇行矩阵
    快速排序 QuickSort
    堆排序
    猪的安家
    百度语言翻译机
    HTML <base> 标签
    免费网络管理流量监控软件大比拼
  • 原文地址:https://www.cnblogs.com/qingjoin/p/3167625.html
Copyright © 2011-2022 走看看