2012-06-20 24 views
77

Firebugのように、アプリケーションから私のサーバへの呼び出しを監視しようとしています。 iOSシミュレータやxCodeで見る方法が見つかりませんでした。iOSシミュレータからのネットワークコールを監視する方法

すべてのトラフィックを盗聴することなくこれを行う方法はありますか? いいえの場合は、どのツールをお勧めしますか?

答えて

64

個人的には、私はそのようなもののためにCharlesを個人的に使用します。あなたはまた、特定の要求のみを盗聴するように設定することができます
有効にすると、それは...などJSON、同様に、SSLおよび様々な要求/ REPONSEフォーマットのサポートを含む、拡張されたリクエストの詳細を表示する、

をすべてのネットワーク要求を監視しますサーバーではなく、トラフィック全体です。

市販のソフトウェアですが、試用版がありますし、IMHOは確かに素晴らしいツールです。

+1

本当に使いやすく構成して、私が欲しいものを正確にしました、ありがとう! –

+1

サーバーがTLSによって保護されている場合は簡単には機能しません。 – carbocation

+0

私はチャールズを試みましたが、発信トラフィックを非常にうまく監視することができませんでした。例えば、私はPOST要求の書式をJSONに変更しませんでした –

24

組み込みのnetwork activity monitor instrumentを使用してください。

+3

ありがとう、それは素晴らしいと思いますが、どこにあるのかは分かりません(そのような初心者のために申し訳ありませんが、 。 –

+11

ありがとう!私はこれを使って遊びますが、最初は外出先のコンテンツ(FirebugやChrome/Safariのリクエストヘッダ+コンテンツとレスポンス)を見る方法を見つけることができませんでした。多分それはどこかにあるが、私は掘り続けるだろう。 –

+0

あなたはこの楽器を使ってこれを行う方法についていくつかアドバイスをしていますか? –

23

HTTP/HTTPSトラフィックだけを表示したい場合は、他の回答で示唆されているようなman-in-the-middleプロキシが適しています。 Burp Suiteはかなり良いです。しかし、それは構成する痛みかもしれません。私はあなたがシミュレータにそれを話すようにどのように説得するのか分かりません。ローカルのMacの環境を利用するため、ローカルのMacのプロキシをプロキシサーバのインスタンスに設定する必要があるかもしれません。

パケットスニッフィングの最適な解決策(ただし、シミュレータではなく、 iOSデバイスでのiOSデバイスでのみ動作します)、rvictlを使用しています。 This blog postに素敵な書き込みがあります。基本的には行います

rvictl -s <iphone-uid-from-xcode-organizer> 

は、その後、あなたはそれがWiresharkの(またはお好みのツール)として作成インターフェースを盗聴し、あなたがしてインターフェイスをシャットダウン完了したら:

rvictl -x <iphone-uid-from-xcode-organizer> 

これはいいですシミュレータをパケットで盗み聞きしたいのであれば、ローカルのMacにもトラフィックを逃がす必要がありますが、rvictlはUSBポートに接続したiOSデバイスからのトラフィックを表示するだけの仮想インターフェイスを作成します。

+1

+1 Burp Suiteの場合は+1、設定する場合は苦労なし:https://www.engadget。com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime /それは10分未満です – Vladimir

3

あなたはケーブル接続とMacを持っている場合は、シンプルで強力な方法があります:

  1. は、それが持つデバイスをキャプチャすることができていることを確認してください(とあなたがすべてのコンピュータの後にこのを行う必要があり、無料のWiresharkをインストールを再起動します):!

    にsudo chmodの644の/ dev/*

  2. BPF今、無線LANを使用してネットワークを共有しています。システム環境設定>共有>インターネット共有。 「接続先の共有:イーサネット」とWi-Fiを使用していることを確認します。いくつかの無線LANセキュリティを設定することもできますが、データの監視に支障はありません。

  3. 新しく作成したネットワークに携帯電話を接続します。私はかなり頻繁にここでいくつかの試みが必要です。電話が接続したくない場合は、MacのWi-Fiを回して、上記の手順2を繰り返して、忍耐強くしてください。

  4. Wiresharkを起動するWiresharkを使用してワイヤレスインターフェイスをキャプチャすると、おそらく "en1"になります。必要なIPアドレスやポートをフィルタリングします。興味のあるパッケージを見つけたら、それを選択し、右クリック(コンテキストメニュー)> Follow TCP Streamをクリックすると、要求と回答の素敵なテキストが表示されます。

また、最高のものはまったく同じトリックもAndroidでも同じです!

+0

あなたのシミュレータでこれを使用できますか?私はまだ私の携帯電話にアプリを持っていない。 –

+0

@Joshua Dance外部ネットワークの要求がある場合、エミュレータで使用できます。 localhostへの接続は、wiresharkでトレースできません。ネットワークに接続されていないためです。 – JaakL

16

Macで簡単に実行できるフリーでオープンソースのプロキシツールは、mitmproxyです。

ウェブサイトには、MacバイナリへのリンクとGithubのソースコードが含まれています。

ドキュメントには、HTTPSトラフィックを表示するために証明書をテストデバイスに読み込むための非常に役立つイントロが含まれています。

チャールズと同じくらい面倒なGUIはありませんが、必要なものすべてを無料で保守します。 以前はいくつかのコマンドラインツールを使用していたのであればいいです。

更新:私はmitmproxyが自家製のインストールとして利用可能であることをウェブサイト上で気付きました。簡単にはできませんでした。

+0

iOSシミュレータでmitmを使用していましたか?私はそれをセットアップしているが、シミュレータの外にあるコンピュータからのトラフィックも捕らえられていますが、これは最良ではありません。実際のデバイスでそれを使用することはすばらしいことです。何年もそれをやっている。 – atreat

0

あなたはクロムインスペクタツールに使用されている場合は良い解決策は、ポニーのデバッガです:https://github.com/square/PonyDebugger

それはセットアップに痛みのビットですが、あなたが一度それがうまく機能します。 Chromeの代わりにSafariを使用してください。

-2
+0

OSXマシンではどのように動作しますか? 2つのタグを考慮すると、xcodeとios-simulatorがあります。 –

+0

@KevinR、 1. TelerikにはOS X用のFiddlerのベータ版があります 2.ここでの選択肢は、OS X http://www.telerik.com/blogs/using-fiddler -with-apple-ios-devices –

+1

@ ConstantinSalavatov、 元記事の主題は、「iOSシミュレータからのネットワークコールを監視する方法」です。 iOSシミュレーターはOS X上でのみ動作するので、OS Xに限定されています*。 – ChillyPenguin

1
  1. がインストールされWireSharkの
  2. は==
  3. セットフィルタip.addr無線LANインタフェースを聴くXcodeのネットワークモニタからIPアドレスを取得しますWireSharkの192.168.1.122
関連する問題