[#39863] forループの速度 — Masahiro Sato <msato@...>

15 messages 2004/07/20

[#39868] イテレータとfor文 — OOTANI TAKASHI <otn@...5.so-net.ne.jp>

大谷と申します。

31 messages 2004/07/20
[#39886] Re: イテレータとfor文 — Tietew <tietew-ml-ruby-list@...> 2004/07/21

[ruby-list:39815] Re: Socket:IPヘッダの編集方法

From: nobu.nakada@...
Date: 2004-07-03 03:49:55 UTC
List: ruby-list #39815
なかだです。

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はできる。
    中田 伸悦

In This Thread