iphone获取当前流量信息
2012-12-10 17:38
387 查看
通过读取系统网络接口信息,获取当前iphone设备的流量相关信息,统计的是上次开机至今的流量信息.
-(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; } } 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]]; }转自:http://www.oschina.net/code/snippet_588197_11927
相关文章推荐
- iphone获取当前流量信息
- IOS源码开发获取当前的流量信息
- 需求:获取iPhone当前Wi-Fi的SSID等网络信息
- IOS源码开发获取当前的流量信息
- IOS源码开发获取当前的流量信息
- 获取当前iphone设备的流量
- iPhone获取当前位置信息
- IOS源码开发获取当前的流量信息
- iphone获取当前磁盘信息
- 获取当前页面关于地址的各项信息
- Android获取当前的网络连接信息和网络链接状态 GPRS 和 WiFi网络
- 获取当前浏览器信息
- spring security 获取当前用户信息
- DB2获取当前用户表、字段、索引等详细信息
- 【API】获取当前进程的内存信息
- iphone获取地址的详细信息
- java中获取当前操作系统的信息
- SQL SERVER 获取当前服务器数据库备份信息
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第六节 获取当前UDP连接情况
- iPhone设备当前IP和SSID的获取