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]];
}

iphone获取当前流量信息

时间: 2024-11-10 15:27:37

iphone获取当前流量信息的相关文章

iphone获取当前磁盘信息

获取iphone磁盘总大小.已使用空间.空闲空间 1. [代码][C/C++]代码 -(float)getFreeDiskspace {    float totalSpace;    float totalFreeSpace;    float totalUsedSpace;        NSError *error = nil;      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NS

SEO优化之如何利用百度风云榜获取百万流量

SEO优化之如何利用百度风云榜获取百万流量 (     SEO优化一定要精细,一味的趁波逐浪最后别说分一杯羹了,可能连汤都看不到.下面我们来说一下网站优化如何运用热度风云榜,并晋升网站流量. 为什么会说到风云榜,所谓的风云榜实在就是天天发生的最新事件,如娱乐.糊口等热点搜索内容的集合.且能够非常正确的反映用户关注的信息及内容. 第一:百度风云榜 百度一下你就知道,这已经成为良多人的口头禅,只要登录百度账号在首页就可以显示实时热门百度优化之怎样利用百度风云榜百度优化之怎样利用百度风云榜.百度风云榜

获取应用程序信息.h

////  获取应用程序信息.h//  IOS笔记// 一般会用来判断是否有新版本.是否需要强制更新 iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中target,点击“Summary”后看到. Version在plist文件中的key是“CFBundleShortVersionString”,和AppStore上的版本号保持一致,Build在plist中的key是“CFBundleVersion”,代表build的版本号,该值每次build之后都应

如何从zabbix数据库中获取每日流量最大值

如果要获取每日流量最大值,可以查看zabbix中的graphs,拉取最大值,但是我们还可以从zabbix_api或者数据库中直接取值,这要靠脚本实现. 有一个需求,收集一部分主机每日进出口流量的最大值,写了个脚本实现这个功能. 版本一: 根据查找到的主机名,输入日期后,输出一日内最大进出口流量 #!/bin/bash # ###获取每日流量最大值的脚本,脚本从zabbix数据库的history_uint表中取 ###数据,根据hostname.txt文件中的主机名. ###wuhf### z_u

Java中获取系统相关信息——sigar

一.sigar简介 sigar中文名是系统信息收集和报表工具,是一个开源的工具,提供了跨平台的系统信息收集的API,可以和绝大多数操作系统和大多数版本打交道,可以收集的信息包括: 1.操作系统的信息,包括:dataModel.cpuEndian.name.version.arch.machine.description.patchLevel.vendor.vendorVersion.vendorName.vendorCodeName 2.CPU信息,包括:基本信息(vendor.model.mh

获取设备的信息

NSLog(@"globallyUniqueString=%@",[[NSProcessInfo processInfo] globallyUniqueString]);//全球唯一标识 NSLog(@"uniqueIdentifie=%@",[UIDevice currentDevice].uniqueIdentifier);//唯一的标识 可用于区分设备 NSLog(@"name=%@",[UIDevice currentDevice].na

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板与bios序列号2 5 参考3 1 获取硬件核心基础核心基础Wmi WMI,是Windows 2K/XP管理系统的核心:对于其他的Win32操作系统,WMI是一个有用的插件.WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object 

Android如何获取SIM卡信息

android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供设备上获取通讯服务信息的入口,应用程序使用这个类的方法来获取电话的服务商或者状态.程序也可以注册一个监听器来监听电话状态的改变. 不需要直接实例化这个类,使用Context.getSystemS

Linux命令(34):ss命令-获取socket统计信息

ss 可以用来获取socket统计信息,它可以显示和netstat类似的内容. 例如: (1)显示TCP连接 #ss -t -a (2)列出所有打开的网络连接端口 #ss -l (3)查看进程使用的socket #ss -pl