Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > socketライブラリ > Addrinfoクラス > new

singleton method 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#addrUNIXSocket#addr の 値と互換でなければなりません。 文字列の場合は Socket.sockaddr_inSocket.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 以外では適切な値です。

[PARAM] sockaddr:
ソケットのアドレス(配列もしくは文字列)
[PARAM] family:
プロトコルファミリー(整数、文字列、シンボル)
[PARAM] socktype:
ソケットタイプ(整数、文字列、シンボル)
[PARAM] protocol:
プロトコル(整数)
[EXCEPTION] SocketError:
不適なファミリーやソケットタイプなどを渡した場合に発生します