日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ios统计流量代码

發(fā)布時(shí)間:2025/3/13 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios统计流量代码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

#include?<ifaddrs.h> ?

#include?<sys/socket.h> ?

#include?<net/if.h>

?

1.3G/GPRS流量統(tǒng)計(jì)

int getGprs3GFlowIOBytes()

{

? ? struct ifaddrs *ifa_list = 0, *ifa;

? ? if (getifaddrs(&ifa_list) == -1)

? ? {

? ? ? ? return 0;

? ? }

?? ?

? ? uint32_t iBytes = 0;

? ? uint32_t oBytes = 0;

?? ?

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

?? ? ? ?

? ? ? ? if (!strcmp(ifa->ifa_name, "pdp_ip0"))

? ? ? ? {

? ? ? ? ? ? struct if_data *if_data = (struct if_data *)ifa->ifa_data;

?? ? ? ? ? ?

? ? ? ? ? ? iBytes += if_data->ifi_ibytes;

? ? ? ? ? ? oBytes += if_data->ifi_obytes;

? ? ? ? ? ? NSLog(@"%s :iBytes is %d, oBytes is %d",

? ? ? ? ? ? ? ? ? ifa->ifa_name, iBytes, oBytes);

? ? ? ? }

? ? }

? ? freeifaddrs(ifa_list);

?? ?

? ? return iBytes + oBytes;

}

?

2.WIFI流量統(tǒng)計(jì)功能

- (long long int)getInterfaceBytes

{

? ? struct ifaddrs *ifa_list = 0, *ifa;

? ? if (getifaddrs(&ifa_list) == -1)

? ? {

? ? ? ? return 0;

? ? }

?? ?

? ? uint32_t iBytes = 0;

? ? uint32_t oBytes = 0;

?? ?

? ? 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. */

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

?? ? ? ? ? ?

? ? ? ? ? ? //? ? ? ? ? ? NSLog(@"%s :iBytes is %d, oBytes is %d",

? ? ? ? ? ? //? ? ? ? ? ? ? ? ? ifa->ifa_name, iBytes, oBytes);

? ? ? ? }

? ? }

? ? freeifaddrs(ifa_list);

?? ?

? ? return iBytes+oBytes; ?

}

轉(zhuǎn)換方法

?

NSString *bytesToAvaiUnit(int bytes)

{

? ? if(bytes < 1024) ? ? // B

? ? {

? ? ? ? return [NSString stringWithFormat:@"%dB", bytes];

? ? }

? ? else if(bytes >= 1024 && bytes < 1024 * 1024) // KB

? ? {

? ? ? ? return [NSString stringWithFormat:@"%.1fKB", (double)bytes / 1024];

? ? }

? ? else if(bytes >= 1024 * 1024 && bytes < 1024 * 1024 * 1024) ? // MB

? ? {

? ? ? ? return [NSString stringWithFormat:@"%.2fMB", (double)bytes / (1024 * 1024)];

? ? }

? ? else? ? // GB

? ? {

? ? ? ? return [NSString stringWithFormat:@"%.3fGB", (double)bytes / (1024 * 1024 * 1024)];

? ? }

}

轉(zhuǎn)載于:https://www.cnblogs.com/chenhaosuibi/p/4243773.html

總結(jié)

以上是生活随笔為你收集整理的ios统计流量代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。