iphone-common-codes-ccteam源代码 CCNetwork.m
//
// CCNetwork.m
// CCFC
//
// Created by xichen on 11-12-23.
// Copyright 2011 ccteam. All rights reserved.
//
#import "CCNetwork.h"
@implementation CCNetwork
// get the total info of network flow, if returns FALSE, the returns upFlow and downFlow value can't be used.
+ (BOOL)getTotalNetworkFlow:(size_t *)upFlow withDownFlow:(size_t *)downFlow
{
struct ifaddrs *ifa_list = 0, *ifa;
if (getifaddrs(&ifa_list) < 0)
{
return FALSE;
}
*upFlow = 0;
*downFlow = 0;
for (ifa = ifa_list; ifa; ifa = ifa->ifa_next)
{
if (ifa->ifa_addr->sa_family != AF_LINK)
continue;
if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING))
continue;
if (ifa->ifa_data == 0)
continue;
if (strncmp(ifa->ifa_name, "lo", 2))
{
struct if_data *if_data = (struct if_data *)ifa->ifa_data;
*downFlow += if_data->ifi_ibytes;
*upFlow += if_data->ifi_obytes;
}
}
freeifaddrs(ifa_list);
return TRUE;
}
@end
可能有更新:
googlecode链接地址:http://code.google.com/p/iphone-common-codes-ccteam/source/browse/trunk/CCFC/files/CCNetwork.m
github地址: https://github.com/cxsjabc/iphone-common-codes-ccteam/tree/master/CCFC/files/CCNetwork.m