8

我需要实现一个应用程序来监控 iPhone 上不同应用程序的入站/出站连接。我的应用程序将使用苹果的 voip 和导航器后台多任务功能在后台运行。我可以使用私有 api,因为我的客户在 appstore 上不需要这个应用程序。

谢谢。

4

3 回答 3

4

我挺过来了。

我不需要任何私有 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)最后你将编译你的代码。干杯!

于 2013-01-10T06:52:11.420 回答
1

如果你还没有看到这个,我已经在我的 iPhone 上成功使用了它。

https://developer.apple.com/library/ios/ipad/#qa/qa1176/_index.html

我意识到这不是你想要的。

于 2013-01-06T20:45:26.207 回答
0

一般来说,我同意 Suneet 的观点。您所需要的只是网络嗅探器。

您可以尝试将WireShark(它是开源的,适用于 MacOS)的部分移植到 iOS。iOS 和 OS X 共享大部分内核,所以如果它没有在 iOS 上明确禁止,它应该适合你。

WireShark 是一个相当大的产品,所以你可能有兴趣寻找另一个在 OS X 上工作的开源网络嗅探器。

于 2012-12-19T17:09:39.487 回答