如何从应用程序内监视networking活动?

我试图从我正在开发的应用程序中监视我的iPhone上的networking活动。 iOS是否支持类似netstat的命令或类似的东西,可以告诉我什么入站和出站连接是活动的?

经过一番search,我发现苹果的代码用于netstat 。

所有你需要的void protopr(uint32_t proto, char *name, int af)函数。

我testing了设备和sysctlbyname("net.inet.tcp.pcblist_n",...)作品。

这应该是你需要的一切。

我无法testing这个,但是从我所收集的内容来看,必须将sysctlsysctlnametomib或者sysctlbyname结合起来使用:

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

和/或

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

你可以使用打嗝套件来达到这个目的,通过这个你可以检查所有的http数据通过你的手机。 你必须在你的mac / ubuntu / windows机器上安装这个,然后在这个工具的帮助下创build一个代理服务器,然后在iphone / android手机上修改你的wifi设置来使用你的电脑作为代理,然后它将捕获所有的input/输出stream量。

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