流量监控是如何实现的?

智能牛蛙 2015-04-02 10:54:11
看了下网上资料都是说getifaddrs获取网卡信息,读取里面流量发送和接收数据,关闭蜂窝移动网络(pdp_ip0)时就读不到这个数据了。但是市面上的几款监控流量的在关闭pdp_ip0这个网卡时依然能读到数据,不知道他们是怎么做到的,有对这些linux函数比较熟悉的么
...全文
350 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
智能牛蛙 2015-04-02
  • 打赏
  • 举报
回复
引用 1 楼 qq_26232363 的回复:
关闭pdp_ip0这个网卡,不知道是什么意思?是设置蜂窝网络吗
就是关闭了蜂窝网络,与之对应的pdp_ip0网卡就关闭了,然后 getifaddrs 就得不到流量发松和接收的数据大小了。
qq_26232363 2015-04-02
  • 打赏
  • 举报
回复
关闭pdp_ip0这个网卡,不知道是什么意思?是设置蜂窝网络吗
智能牛蛙 2015-04-02
  • 打赏
  • 举报
回复
// if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING)) // continue; 上面这两句屏蔽掉就算关闭蜂窝网也能正常读取数据了
智能牛蛙 2015-04-02
  • 打赏
  • 举报
回复
终于解决了,之前是思考方向错了,以为关闭蜂窝网会导致这个网卡的ifa_data是0,结果仔细真机测试才发现是根本就没执行到这里(模拟器会执行,但是数据是0),后来发现前面有两行代码的意思是如果网卡没开启则直接continue跳到循环尾部了,屏蔽这两行后就能读取这个接口了,妈的这么简单的事搞了好久

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧