- PR -

Protocol上にある全ての情報を取得するには?

1
投稿者投稿内容
POLON
会議室デビュー日: 2002/09/10
投稿数: 13
投稿日時: 2003-07-02 20:15
ども POLONです。
いま通信上でどの様なデータが流れているかを確認する(Viewer?)Servletを構想中なのですが、ここでひとつ問題に当たりました。

HTTP Protocol上のHeader情報等はHttpServlet周辺のクラスを使えば拾えると思うのですが(ex:HttpServletRequest.getHeaders()等)、HTTP以外のTCP/IP上のデータを取得するのにはどのようにすれば良いのでしょうか?

何方か良いアドバイスを頂けませんか
宜しくお願い致します。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-07-03 00:08
いまいちやりたいことが見えませんが、TCP/IP上のデータって何を指してます?
ネットワークを監視するならスニファを作ることになるでしょうけど。

単に見たいだけならtcpdumpのようなスニファのアウトプットを
表示しやすいように定期的に変換しておいて、Servletからそれを
読むとかするのがいいかと思いますよ。

HTTPのヘッダが取り出せるのはServletにHTTPのリクエストが入ってるからだと
いうことを忘れないようにしましょう。
ちの
会議室デビュー日: 2003/02/05
投稿数: 4
投稿日時: 2003-07-03 13:43
どうしてもJavaを使う必要がないのであれば、ntopのようなツールを使ってはいかがでしょうか。
プログラムを自分で書くなら、CかC++で生ソケット(SOCK_RAW)やDLPIを使いましょう。標準的なJavaではこれらの機能は使えないと思います。詳しくはEtherealやtcpdumpのソースが参考になると思います。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2003-07-04 00:30
TCP/IPに流れている情報を見るだけでしたら、サーバソケットと普通のソケットクラスを使って、一種のプロキシのような物を普通のJavaプログラムで作ってあげれば見ることができますよ。
ローカルホストの特定のポート番号でサーバーソケットを上げておいて、そこにクライアントから接続があったら、普通のソケットとクライアントプログラムが本当に接続したいホストを接続してあげて、ソケット同士でデータを流しあってあげれば、間に入ったプログラムでデータを表示するなりは簡単に行うことができると思います。パッシブモードではないFTPなんかだと、このままではうまくいかないと思うんですが、FTPのような特殊なTCPプロトコルでなければ、これでできると思います。Servletでこういったプログラムを作ることは、できないわけではないですが、使いにくいと思いますよ。


POLON
会議室デビュー日: 2002/09/10
投稿数: 13
投稿日時: 2003-07-28 19:20
レスを頂戴した皆さん、返事が遅くなりまして本当にゴメンナサイ。。。
(やる事が次々と立て込んでました。。。 )

そぉですかぁ、皆さんのレスを読ませて頂くと、結構難しそうですねぇ...。
ただ案件が「Servletで実現出来るのであれば」という条件がついているので
ちょっと試してみようと思います。

皆様、大変貴重な情報をご提供頂き本当に有難う御座いました。
R-55
常連さん
会議室デビュー日: 2003/03/13
投稿数: 29
投稿日時: 2003-07-29 09:23
こんにちは、R-55です。
参考までにちょうど小僧さんが言っていたようなツールがあります

http://www.bbzzdd.com/plugproxy/
_________________
1

スキルアップ/キャリアアップ(JOB@IT)