8

iPhoneのさまざまなアプリによるインバウンド/アウトバウンド接続を監視するアプリを実装する必要があります。私のアプリは、VoIPとナビゲーター用のアップルのバックグラウンドマルチタスク機能を使用してバックグラウンドで実行されます。クライアントはappstoreでこのアプリを必要としないため、プライベートAPIを使用できます。

ありがとう。

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 コードに、ヘッダー ファイル内の一部の構造体の定義が見つからないことに関連する小さなエラーが見つかる場合があります。定義がそこに存在します.ios sdkがそれらのif条件に到達して定義にアクセスできるように、これらのヘッダーファイルにいくつかの「#if !TARGET_OS_EMBEDDED」#elseをコメントする必要があります.(試行錯誤が必要です.我慢してください.)

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 に答える