【问题标题】:How To Monitor Network Activity From Within App?如何从应用程序内监控网络活动?
【发布时间】:2011-09-02 08:12:59
【问题描述】:

我正在尝试从我正在开发的应用程序中监控我的 iPhone 上的网络活动。 iOS 是否支持类似 netstat 的命令或类似的命令,可以告诉我哪些入站和出站连接处于活动状态?

【问题讨论】:

标签: iphone objective-c ios netstat cfnetwork


【解决方案1】:

您可以为此目的使用 burp 套件,这样您就可以检查通过手机的所有 http 数据。 你必须在你的 mac/ubuntu/windows 机器上安装它,然后在这个工具的帮助下创建一个代理服务器,然后在 iphone/android 手机中修改你的 wifi 设置以使用你的电脑作为代理,然后它将捕获所有输入/输出流量。

在此处阅读完整说明 - http://www.engadget.com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime/

【讨论】:

    【解决方案2】:

    经过一番搜索,我找到了Apple's code used for netstat

    void protopr(uint32_t proto, char *name, int af) 函数中所需的一切。

    我在设备上进行了测试,sysctlbyname("net.inet.tcp.pcblist_n",...) 工作正常。

    这应该就是你所需要的。

    【讨论】:

    • 我在文档上找到了代码,看起来很有希望,我相信他们使用printf(" %7.7s[%1d] %7.7s[%1d]", "rxbytes", prioflag, "txbytes", prioflag); 计算和打印但我对 C 语言不是很流利,你知道如何解释返回的数据sysctlbyname?
    • 是的,我知道,但这都在我发布的 Apple 代码中。如果你愿意,我明天可以聊天并帮助你解决这个问题。
    • 非常感谢明天能和你聊天,同时我会尽我所能从inet代码中解决问题,找到愿意在线帮助的人真的很酷!
    • @Zebs 当然,等我准备好了,我会邀请你在这些 cmets 中聊天。
    • 绝对!如果您想使用 google talk,我可以使用 twitter 向您发送我的 gmail。
    【解决方案3】:

    我无法对此进行测试,但据我所知,您必须将sysctlsysctlnametomibsysctlbyname 结合使用:

    sysctlbyname("net.inet.tcp.pcblist", ...)
    

    和/或

    sysctlbyname("net.inet.udp.pcblist", ...)
    

    【讨论】:

    • 我已经尝试过并且可以调用该函数,但我不知道如何解释它返回的数据。问题是找kbs in和kbs out,你知道数据应该怎么解释吗?
    • @Zebs 这个问题没有提到任何 kbs,它提到了活动连接......我自己无法测试,但我建议你看看source code of netstat,它应该会给你一个关于如何解释结果的好主意...
    • 你是绝对正确的,这是我的问题,我认为它包含在“监控网络活动”中,但你是绝对正确的。我将深入研究 netstat 以了解如何解释这些数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2021-03-01
    • 2023-03-12
    相关资源
    最近更新 更多