iphone 获取机子网络流量
获取的是开机后WIFI,3G/GPRS网络下使用流量(仅仅只能获取开机后的)
和一个应用"瓦力流量仪"类似.
瓦力流量仪的核心代码也就是这一段吧!
需要引入
#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]autorelease];
success = getifaddrs(&addrs) == 0;
if (success)
{
cursor = addrs;
while (cursor != NULL)
{
name=[NSString stringWithFormat:@"%s",cursor->ifa_name];
NSLog(@"ifa_name %s == %@\n", 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];
}
http://stackoverflow.com/questions/7946699/iphone-data-usage-tracking-monitoring
iphone 获取机子网络流量相关推荐
- 【网络流量识别】【深度学习】【三】CNN和LSTM—基于信息获取和深度学习的网络流量异常检测
本文是北京大学陆祥林等人,2019年四月发表于ICISDM的一篇文章,收录于ACM网站. 文章题目:基于信息获取和深度学习的网络流量异常检测 原文网址:基于信息获取和深度学习的网络流量异常检测|201 ...
- python获取指定端口流量_python如何查看系统网络流量的信息
前言 流量信息可以直接在/proc/net/dev中进行查看,笔者实现的程序使用命令: python net.py interface 其中interface为网卡名称,使用什么网卡,电脑有哪些网卡, ...
- android 获取移动网络,Android获取移动当前APP移动流量的方法
记录一种获取移动数据流量的方法 通过proc/net/xt_qtaguid/stats 该方法需要先获取uid,通过uid过滤出app相关的流量数据.由于项目需要采集的是移动数据流量,所以需要把lo( ...
- 获取iPhone/iPad设备网络类型(2G,3G,4G,5G,WIFI)
目前我们获取手机网络类型主要还是用的 AFNetwork 但是AFNetwork有个问题就是类型不够充分,只能四种类型 typedef NS_ENUM(NSInteger, AFNetworkReac ...
- linux系统CPU,内存,磁盘,网络流量监控脚本
前序 1, #cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s 或者 #vmstat 虚拟内存统 ...
- caffe-gpu ubuntu 安装_如何在Linux中安装vnStat和vnStati监视网络流量
VnStat是针对Linux和BSD的基于控制台的网络流量监视工具设计.它将保留所选网络接口的网络流量日志.为了生成日志,vnStat使用内核提供的信息. 换句话说,它不会嗅探网络流量,并且可以确保系 ...
- 使用eBPFbcc提取内核网络流量信息(二)
通过上次从0开始编写自己的bcc程序的介绍,我们已经用编写的bcc程序提取出内核网络中数据关键字段为进程的PID,进程的名字,进程的收包实时流量.发包实时流量,收包流量总和,发包流量总和,总的收发流量 ...
- 使用eBPFBCC提取内核网络流量信息
前言 本文将分享从0开始编写自己的bcc程序.那么开始编写bcc之前,自己一定要明确,我们要用bcc提取什么数据.本文的实例是统计内核网络中的流量,我要提取的数据关键字段为进程的PID,进程的名字,进 ...
- modbus报文解析工具_Linux下网络流量常用那些监控工具
这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof.ip.tcpdump.iptables等.本文不会深入研究这些命令的强大用法,因为每个命令都足以写一篇文章,本文只是简单地介绍并辅 ...
最新文章
- js过滤HTML标签以及空格
- linux yum 离线安装rpm包
- ffmpeg图片压缩为视频
- 初学 Delphi 嵌入汇编[1] - 汇编语言与机器语言
- poj 1502 MAPMaelstrom 单源最短路dijkstra
- android input 点击事件失效,React Native:TextInput元素上的onContentSizeChange事件在Android上不起作用...
- 配置suse syslog服务器
- javascript cookies 存、取、删除实例【转】
- 致远getshell
- Python 玩转数据 17 - Pandas 数据处理 合并 pd.merge() df1.merge(df2)
- 斐讯k3更新mysql_斐讯K3官改,安装onmp教程,回馈社区。-附TCExam后续安装
- 14行代码教你制作自己的有道词典单词本(python)
- 三菱plc pwm指令_三菱PLC高速处理指令编程
- myeclipse10异常闪退Java was started but returned exit code=1
- notes java api_Java中通过Notes API访问Domino数据库
- 搞定HTML\CSS之background属性
- PyInstaller 的安装和使用(python生成exe文件)_联网安装
- ubuntu18.04 使用scp命令
- python二手交易系统毕业设计开题报告
- 仙人掌植物盆栽ui布局特效