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