gpt4 book ai didi

objective-c - 监控网络使用情况,不包括本地流量

转载 作者:太空狗 更新时间:2023-10-30 03:26:44 25 4
gpt4 key购买 nike

我正在开发一款监控网络使用情况的应用程序。但是我注意到很多方法都不允许排除本地流量(例如,Time Machine)。

我正在寻找一种方法来排除本地流量,并且只监控直接进入/来自互联网的使用情况。

更新:感谢您的回复,现在我知道如何查找流量是否为本地流量,但我仍然不知道如何计算总输入/输出字节数(抱歉,如果我之前没有详细说明)。我无法知道在特定时间段内或自操作系统启动以来在本地(或互联网)发送/接收了多少字节。由于在操作系统运行时启动或终止进程,这个问题变得更加复杂。

问题的答案How to get network adapter stats in linux/Mac OSX?提供了一种总结总使用情况的有趣方法,但它无济于事,因为它总结的使用情况是接口(interface)统计信息。

更新 2:我已经发布了我的最终解决方案。请向下滚动查看。

最佳答案

您需要阅读 ifconfig(8) 的源代码,它描述了如何获取每个连接的网络接口(interface)的状态。

特别注意 in_status(),它获取接口(interface)的 inet 地址和网络掩码。

当流量中的源地址或目标地址与本地接口(interface)具有相同的主机时

int is_local =
(src && netmask) == (ifaddr && netmask)
|| (dst && 网络掩码) == (ifaddr && 网络掩码)

那么可以确定是本地的

http://www.opensource.apple.com/source/network_cmds/network_cmds-307/ifconfig.tproj/ifconfig.c

关于objective-c - 监控网络使用情况,不包括本地流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4281531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com