如何在iOS 4中列出TCP/UDP连接

7
我希望能够在iOS 4.3设备上获取活动的TCP/UDP网络连接列表。实际上,我正在寻找与在OS X Darwin下发出" netstat -anp tcp"(或相同但使用udp)命令所得到的信息相同类型的信息。
我已经搜索了Apple的iOS开发者文库(尤其是NSNetServices、CFNetServices和iOS手册页面)和互联网,但没有好的结果。然而,有一个iOS Netstat应用程序(请参见http://itunes.apple.com/us/app/netstat/id400071873?mt=8&ign-mpt=uo%3D2),因此似乎是可能的。
非常感谢您提供任何有用的指针/建议/想法。

当然可以,但我认为它依赖于存在一个/proc文件系统来进行查找。 - RCroasher
我认为在iOS中直接读取设备文件是不可能的,所以我看不到解决方案。 :/ - user142019
我同意解决方案似乎有些难以捉摸(这就是为什么我把问题带到这个优秀的论坛!)。尽管如此,有一个iOS应用程序(即我在问题中提到的)似乎像传统的netstat实用程序一样运行。 - RCroasher
1个回答

9

我相信我现在已经回答了自己的问题。之前我认为已经对sysctl()库函数进行了足够的仔细研究,但事实并非如此!例如,以下代码将提供有关当前TCP连接的信息:

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

要获取有关UDP连接的信息,只需使用不同的管理信息库(MIB)名称:net.inet.udp.pcblist。

为方便起见,这里是适用于iOS的相关手册链接:

http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/sysctlbyname.3.html

1
你有什么建议如何“解析”从该方法检索到的数据吗?我正在尝试获取所有当前打开的套接字。 - Sunkas
1
解析已经完成。但是你知道是否有一种方法可以将每个连接“链接”到特定的进程/服务吗? - Sunkas
@JonasAndersson,你是如何解析数据的?请提供一些代码。 - virata
1
有关解析方面需要帮助吗? - jcesarmobile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接