質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Wireshark

Wireshark(ワイヤシャーク)は、ネットワーク・アナライザソフトウェアです。 IP、DHCPなど800以上のプロトコルを解析できる機能があり、 Windows、Linux、BSD、Mac OS Xなどで利用が可能です。

Q&A

1回答

713閲覧

ネットワーク上のパケットを解析するアプリ開発

LS_Takao

総合スコア13

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Wireshark

Wireshark(ワイヤシャーク)は、ネットワーク・アナライザソフトウェアです。 IP、DHCPなど800以上のプロトコルを解析できる機能があり、 Windows、Linux、BSD、Mac OS Xなどで利用が可能です。

0グッド

0クリップ

投稿2019/12/05 06:44

お世話になっております。

ネットワーク上のパケットを解析するアプリケーションの開発を企画しているのですが、
パケットの収集、及び、パケットの解析を行ったことが無いため、実現方法を模索しています。

構想としては以下の3段階を考えています。
1.ミラーリングハブを介してパケットを収集する。
2.収集したパケットをアプリケーションが解析する。
3.解析結果を画面に表示する。

但し、以下の条件があります。
・収集から画面表示までのタイムラグは極力減らしたい。
・対象となるパケットは250msec周期で送信される。

Wiresharkを用いてパケットを収集できることを確認したのですが、
収集したデータはファイルでしかアプリケーションに引き渡せないのでしょうか?
(収集したデータをファイル化せずにアプリケーションへ引き渡すことはできないのでしょうか?)

どうか諸先輩方のお知恵を拝借させていただければと思っております。
どうぞ、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

wiresharkを使用することが前提なのであれば、wiresharkのプラグインを作るのがベストかと思います。
参考: Wireshark で独自プロトコルを解析 (dissector with Lua)

tcpdumpやtshark等のコマンドラインツールを使う事を前提に出来るのであれば、
標準出力経由でアプリケーション側で受け取って処理をすることが出来ます。

投稿2019/12/05 07:18

tanat

総合スコア18709

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LS_Takao

2019/12/05 07:57

tanat 様 御回答ありがとうございます。 ご紹介いただいたページを拝見しました。 パケットをパースする(解析する)手段の参考になりました。 そのページの「Wireshark’s Lua API Reference Manual」も参照してみました。 「11.1. Saving capture files」でファイルの出力も可能なようですね。 ちなみにアプリケーションとファイル以外でデータを渡す方法としては 「11.4. Post-dissection packet analysis」を用いるイメージでしょうか? 恥ずかしながら、具体的な手段にたどり着けておりません。 コマンドラインツールの使用も視野に入れています。 標準出力経由でアプリケーション間のデータ受け渡しを行ったことがないのですが、 標準出力の内容をリダイレクトでファイル化して出力し、 別アプリケーションがそのファイルを参照するイメージでしょうか? 御多忙とは存じますが御教授の程、宜しく御願い致します。
tanat

2019/12/05 08:12

> ちなみにアプリケーションとファイル以外でデータを渡す方法としては > 「11.4. Post-dissection packet analysis」を用いるイメージでしょうか? > 恥ずかしながら、具体的な手段にたどり着けておりません。 すみません、この辺りはあんまり知りません。 プラグインで適当な形式(CSVとかXMLとか)でファイル出力してそれをアプリケーションで開くとかが簡単な気がします。 > コマンドラインツールの使用も視野に入れています。 > 標準出力経由でアプリケーション間のデータ受け渡しを行ったことがないのですが、 > 標準出力の内容をリダイレクトでファイル化して出力し、 > 別アプリケーションがそのファイルを参照するイメージでしょうか? 一旦ファイルに出力してもいいですし、標準出力をそのまま該当のアプリにリダイレクトしてあげてアプリ側で標準入力を受け取っても良いです。
LS_Takao

2019/12/06 06:14

tanat 様 御回答ありがとうございます。 > すみません、この辺りはあんまり知りません。 > プラグインで適当な形式(CSVとかXMLとか)でファイル出力してそれをアプリケーションで開くとかが簡単な気がします。 ファイルを介してのアプリケーション連携方法につきましてイメージできました。 > 一旦ファイルに出力してもいいですし、標準出力をそのまま該当のアプリにリダイレクトしてあげてアプリ側で標準入力を受け取っても良いです。 標準出力、標準入力につきまして、心得が無かったのですが、イメージできました。 御回答いただきました方法を参考に高頻度でも耐えうるか検証を行います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問