【问题标题】:iOS Swift capture network packetsiOS Swift 捕获网络数据包
【发布时间】:2016-06-10 04:14:22
【问题描述】:
对于测试应用程序,我需要从 iOS 获取网络信息。在 Android 中,有一些 API 可用于获取发送、接收的数据包、它们的大小(以字节为单位)以及其他一些信息。 Apple iOS 中有没有类似的东西?
通过 pcap C 库获得的更深入的信息可以在不越狱的情况下使用吗?
【问题讨论】:
-
使用仪器面板,仪器 > 网络。另一种选择是使用Charles,但这需要额外的设置
标签:
ios
networking
packet-capture
【解决方案1】:
通过 pcap C 库获得的更深入的信息可以在不越狱的情况下使用吗?
不能在 iOS 上运行基于 libpcap 的程序,因为默认情况下,Darwin 使 BPF 设备只能由 root 打开,因此,在 {OS X, iOS, tvOS} 上,只有以 root 权限运行的进程才能使用 libpcap捕获网络流量;如果没有越狱,您将无法在 iOS(或 tvOS)上以 root 身份运行程序。
但是,对于 iOS 5 或更高版本,您可以使用 iOS 和 OS X 中的remote virtual interface 工具让在 Mac 上运行的程序查看 iOS 机器接收和发送的流量。