From: nobu.nakada@... Date: 2004-07-03T12:49:55+09:00 Subject: [ruby-list:39815] Re: Socket:IPヘッダの編集方法 なかだです。 At Sat, 3 Jul 2004 06:32:33 +0900, takeshi honda wrote in [ruby-list:39814]: > Socketを使って、tracerouteのような機能を持つツールを作りたいと思っていま > す。 > 送信パケットの、IPヘッダのTTLを設定したいのですが、Socketクラスを使って > IPヘッダをいじる方法がわかりません。 > やったことのある方、サンプルプログラムを見せていただけないでしょうか? やったことはありませんが、たぶんIPv4はこんな感じでできるのでは ないかと思います。 class IPSocket def ttl case af = addr.first when /\AAF_INET\z/ getsockopt(Socket::IPPROTO_IP, Socket::IP_TTL).unpack("i") else raise NotImplementedError, af end end def ttl=(n) case af = addr.first when /\AAF_INET\z/ setsockopt(Socket::IPPROTO_IP, Socket::IP_TTL, n) else raise NotImplementedError, af end end end IPv6は定数が未定義のようなんですが、このへんの名前ってシステム によってかなり違うんでしょうか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦