我需要实现一个应用程序来监控 iPhone 上不同应用程序的入站/出站连接。我的应用程序将使用苹果的 voip 和导航器后台多任务功能在后台运行。我可以使用私有 api,因为我的客户在 appstore 上不需要这个应用程序。
谢谢。
我需要实现一个应用程序来监控 iPhone 上不同应用程序的入站/出站连接。我的应用程序将使用苹果的 voip 和导航器后台多任务功能在后台运行。我可以使用私有 api,因为我的客户在 appstore 上不需要这个应用程序。
谢谢。
我挺过来了。
我不需要任何私有 Api 来获取入站/出站活动连接的信息。它只是您需要了解基本的 C 编程和一些耐心。
我就此事写信给苹果开发论坛,并得到了回应-
From my perspective most of what I have to say about this issue is covered in the post referenced below.
<https://devforums.apple.com/message/748272#748272>>
The way to make progress on this is to:
o grab the relevant headers from the Mac OS X SDK
o look at the Darwin source for netstat to see how the pieces fit together
WARNING: There are serious compatibility risks associated with shipping an app that uses this technique; it's fine to use this for debugging and so on, but I recommend against shipping code like this to end users.
我一步一步做的是——
1)从BSD开源下载的netstat代码-
2)将此添加到您的新iphone项目中。
3)看,ios sdk中不存在一些头文件,所以你需要从opensource.apple.com复制它并将它们添加到你的iphone sdk中的相关路径 下 -
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include
我的 xcode 版本是 4.5.2。所以这是与我的 xcode 相关的路径。您可以根据 xcodes.Anyway 的版本有不同的路径。并记住在 iosSdk 和 iOSSimulatorSdk 中都添加这些标头,以便代码可以在设备和模拟器上运行。
4)您可能会在 netstat 代码中发现一些小错误,这些错误与未在头文件中找到某些结构的定义有关。例如“struct xunpcb64”。不要担心。定义存在那里。您需要在这些头文件中注释一些“#if!TARGET_OS_EMBEDDED”#else,以便 ios sdk 可以在那些 if 条件下访问并访问定义。(需要一些尝试和错误。请耐心等待。)
5)最后你将编译你的代码。干杯!
如果你还没有看到这个,我已经在我的 iPhone 上成功使用了它。
https://developer.apple.com/library/ios/ipad/#qa/qa1176/_index.html
我意识到这不是你想要的。
一般来说,我同意 Suneet 的观点。您所需要的只是网络嗅探器。
您可以尝试将WireShark(它是开源的,适用于 MacOS)的部分移植到 iOS。iOS 和 OS X 共享大部分内核,所以如果它没有在 iOS 上明确禁止,它应该适合你。
WireShark 是一个相当大的产品,所以你可能有兴趣寻找另一个在 OS X 上工作的开源网络嗅探器。