From: Tetsuo Sakaguchi Date: 2007-08-01T20:20:48+09:00 Subject: [ruby-list:43776] Re: UDP通信時のエラー検出 In message <407af920708010401j3d2b86ck425e51e6ffafc843@mail.gmail.com> 2007-08-01T20:01+0900, 中田雅美 wrote: > UDPポート監視ツールのイメージです。 なるほど、遠隔からポートスキャンしたかったわけですね。 > 一般的なポートスキャンツールでは、 > 何らかのUDPパケットを送って、不達通知パケットが届くかどうかで > ポートが開いているか確認している、とネットの情報で見ました。 > これをRubyのSocketクラス、UDPSocketクラスで > できないか試していてつまづき、質問させていただきました。 Socket::Constants には SOCK_RAWとか、IPPROTO_ICMP があるようなので、 Socket クラスを使ってゴリゴリ書けば出来そうには見えますね。 > 実行環境は送信・受信ともにCentOS 4.4 です。 「送信・受信」というよりは「スキャンする側、される側」ですね。 Rubyよりは、言語を問わず(というよりは実質C言語で書かれた)その手のツールの 作り方という観点で調べた方が良いのではないでしょうか? CentOS をお使いのようですから、 traceroute のソースも手近にあると思います。 それを参考にされてはどうでしょう? 昔 Unixマガジンの連載記事で traceroute の解説もあったと思いますから (巻号は失念しました。。。) そちらも合わせて御覧になるとわかり易いと思います。 -- 阪口哲男@図書館情報メディア研究科.大学院.筑波大学 Tetsuo SAKAGUCHI. Graduate School of Library, Information and Media Studies University of Tsukuba, JAPAN.