Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。KB)本稿では、WinPcapで提供されるRPCAPプロトコルに対応したプログラムを作成し、リモートで別ネットワークのパケットをキャプチャする方法について紹介します。転送パケットのフィルタまとめ参考資料サンプルプログラムの実行例はじめに本稿では、WinPcapで提供されるRPCAPプロトコルに対応したプログラムを作成し、リモートで別ネットワークのパケットをキャプチャする方法について紹介します。FrameworkのマネージコードからWinPcapを利用する例となるように、サンプルプログラムはC#で作成しました。Frameworkを用いてWindowsアプリケーションを開発している方。ネットワーク関連のプログラムを作成される方。1.1で動作確認をしています。3.1で動作を確認しています。Protocol(以降「RPCAP」と表記)というプロトコルを使用し、サーバおよびクライアント上で動作する2つのプロセスで構成されています。クライアントで動作するプロセス(以降「RPCAPクライアント」と表記)は、WinPcapを利用した通常のプログラムです。サーバ側で動作するプロセス(以降「RPCAPサーバ」と表記)は、rpcapdと呼ばれるリモートデーモンであり、実際のモジュールは「rpcapd.exe」です。RPCAPを使用すると、RPCAPサーバが動作する端末でのネットワーク・トラフィックをモニタして、RPCAPクライアントが動作する別のマシンで、そのパケットを処理(表示・保存など)することができます。WinPcapでは、このRPCAPを階層下に組み込むことで、WinPcapを使用するプログラムが特に意識することなく、このリモートキャプチャ機能を利用できるようになっています。今回作成したサンプルプログラムでは、従来のパケットモニターのようにローカルのインターフェースをモニタする「ローカル接続」モードと、RPCAPサーバに接続してRPCAPサーバのインターフェースをモニタする「リモート接続」モードの2つのモードで動作するようにしました。feature(高度な実験的機能)と位置づけされており、完全な動作は保障されていないものと考えられます。私が使用してみた実感では、大きな問題は特に感じられませんでした。今後のバージョンで仕様が変更される可能性は十分にありますので、ご利用の際は最新のドキュメントを確認していただく事をお勧めします。RPCAPサーバの起動RPCAPサーバは、セキュリティ上のリスクを回避するためインストール時点では動作していません。そのため、これを使用するには利用者が起動する必要があります。PRCAPサーバは、標準的なWin32実行ファイルであり、サービスおよびコマンドラインのどちらからでも動作します。サービスによる起動WinPcapをインストールすると、同時にサービスとしてRPCAPサーバが登録されます。machine.」という行を確認することができます。インストールした時点では、スタートアップの種類は「手動」で、サービス状態は「停止」になっています。サービスからの起動これを「開始」にするだけで、デフォルト設定でRPCAPサーバが起動します。図4は、『TCP/IPを利用しているプロセス情報を視覚的に表示する』で紹介した、ポートを使用しているプロセスを表示するサンプルプログラムを使用して、RPCAPサーバのデフォルトポートである2002番をLISTENINGしている「rpcapd.exe」を表示しています。サービスのプロパティで「実行ファイルのパス」を確認すると分かりますが、WinPcapをインストールしたフォルダにある「rpcapd.exe」というプログラムを-d「デーモン起動」で実行しているだけです。Files\WinPcap\rpcapd.ini"また、パラメータを受け取るファイルは、同フォルダの「rpcapd.ini」になっており、このファイルを編集することで「rpcapd.exe」に起動パラメータを渡すことが可能になっています。コマンドラインからの起動WinPcapインストールしていないコンピュータであっても、「rpcapd.exe」をコピーしてコマンドラインから起動することが可能です。コマンドラインからの起動ここでWinPcapドキュメントから、「rpcapd.exe」パラメータについて簡単に紹介しておきます。3.1のドキュメントには、LinuxやBSDでRPCAPサーバをコンパイル可能であると紹介されています。makeの方法や注意点なども記述されていますので、興味のある方はぜひ試してみてください。仕事では、iOSアプリの開発を行っております。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。12:00法務担当者、6割超が今後業務で「生成AIを使用したい」と回答。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。