Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > socketライブラリ > Addrinfoクラス > new
new(sockaddr, family=Socket::PF_UNSPEC, socktype=0, protocol=0) -> Addrinfo
[permalink][rdoc]新たな Addrinfo オブジェクトを返します。
sockaddr は connect(2) などで使われるパラメータで、 struct sockaddr に対応します。faimily, socktype, protocol は socket(2) のパラメータに対応します。
sockaddr には文字列もしくは配列を指定します。 配列の場合は IPSocket#addr や UNIXSocket#addr の 値と互換でなければなりません。 文字列の場合は Socket.sockaddr_in や Socket.unpack_sockaddr_un で得られるようなものでなければ なりません。
実際には sockaddr には以下のようなものが使えます。
配列で AF_INET/AF_INET6 を指定した場合、配列の4番目の要素 が実際のIPアドレスとして使われます。配列の3番目の要素は ホスト名ですが Addrinfo#inspect での表示にしか用いられません。
family は Socket::PF_INET のようなプロコルファミリーを指定します。 文字列やシンボル名を指定することができます(PF_ というプレフィクスは 省略することもできます)。例えば :INET, :INET6, :UNIX, "PF_INET" などです。
socktype は Socket::SOCK_STREAM のようなソケットタイプを指定します。 文字列やシンボル名を指定することができます(SOCK_ というプレフィクスは 省略することもできます)。例えば :STREAM, :DGRAM, :RAW, "SOCK_STREAM" などです。
protocol は Socket::IPPROTO_TCP のようなプロトコルを指定します。 family や socktype と異なり、整数でなければなりません。 デフォルト値(0) は raw socket 以外では適切な値です。