Objective c 读取接收和发送的网络流量字节

Objective c 读取接收和发送的网络流量字节,objective-c,xcode,macos,Objective C,Xcode,Macos,获取Objective-C中发送和接收的网络流量字节的最简单方法是什么?这并不容易,而且它来自C而不是Objective-C,但您需要的所有信息都存储在接口地址的ifa_数据字段中,该接口地址由GetIFADRS(3)返回。您可以在libtop\u p\u networks\u示例函数中的“top”实用程序中看到如何访问此功能的一个示例。cleaneast解决方案可能是cdespinosa的 候补者可能是 1/将netstat调用包装到NSTask中 diciu$ netstat -bi en0

获取Objective-C中发送和接收的网络流量字节的最简单方法是什么?

这并不容易,而且它来自C而不是Objective-C,但您需要的所有信息都存储在接口地址的ifa_数据字段中,该接口地址由GetIFADRS(3)返回。您可以在libtop\u p\u networks\u示例函数中的“top”实用程序中看到如何访问此功能的一个示例。

cleaneast解决方案可能是cdespinosa的

候补者可能是

1/将netstat调用包装到NSTask中

diciu$ netstat -bi en0
Name  Mtu   Network       Address            Ipkts Ierrs     Ibytes    Opkts Oerrs     Obytes  Coll
en0   1500  <Link#4>    xx:xx:xx:xx:xx    86259     0   86175096    64485     0   10090152     0
转储中的“d2 4a 01 00”是总ip数据包(即0x14ad2=84690数据包)

您得到的结构在netinet/ip_var.h中定义:

struct  ipstat {
        u_int32_t       ips_total;              /* total packets received */
[..]

在整个系统中,还是仅针对您的应用程序?对于整个系统,在特定网络源上进出的所有东西(无线、以太网,毫无疑问,这些东西我必须首先检查使用情况)。@Antro,您需要根访问才能扫描数据包。你应该使用一个像tcpdump之类的程序。我认为这会很复杂,我所追求的只是进出的流量,而不是真正想看到流量。谢谢你的回答,我会看看这些,看看我能想出什么。
struct  ipstat {
        u_int32_t       ips_total;              /* total packets received */
[..]