[RFC2553]で定義された
getaddrinfo() の機能を提供するクラスメソッド。この関数は
gethostbyname() や getservbyname() の代わりとして用意されており、
IP のバージョンに依存しないプログラムを書くための標準的な API です。
- [PARAM] nodename:
-
ホスト名を指定します。 必須引数です。 (socket/ホスト指定形式を参照)
- [PARAM] servname:
-
サービス名を指定します。 必須引数です。 (socket/サービス指定形式を参照)
- [PARAM] family:
-
アドレスファミリー。Socket::AF_INET など、[[m:Socket::Constants#アドレスファミリー]]にある定数を指定します。
- [PARAM] socktype:
-
ソケットタイプ。 Socket::SOCK_STREAM など、 [[m:Socket::Constants#ソケットタイプ]]にある定数を指定します。
- [PARAM] protocol:
-
プロトコル。Socket::IPPROTO_IP など、 [[m:Socket::Constants#プロトコル]]にある定数を指定します。
- [PARAM] flags:
-
getaddrinfo(3) の第3引数に指定する addrinfo 構造体の ai_flags メンバに相当する Fixnum。 Socket::AI_PASSIVEなど。
- [RETURN]
-
7つの要素からなるアドレス情報に関する配列を返します。
アドレス情報について
アドレス情報とは7つの要素からなる次の形の配列です。
- 第0要素 - アドレスファミリー (String)
- 第1要素 - ポート番号 (Integer)
- 第2要素 - ホスト名 (String)
- 第3要素 - アドレス (String)
- 第4要素 - アドレスファミリーに対応する Integer
- 第5要素 - ソケットタイプに対応する Integer
- 第6要素 - プロトコルに対応する Integer
必須引数について
必須引数の意味は以下の通りです。
省略可能な引数について
残りの引数は省略可能です。
- family - アドレスファミリー。
Socket::AF_INET など、
[[m:Socket::Constants#アドレスファミリー]]にある定数を指定します。
- socktype - ソケットタイプ。
Socket::SOCK_STREAM など、
[[m:Socket::Constants#ソケットタイプ]]にある定数を指定します。
- protocol - プロトコル。
Socket::IPPROTO_IP など、
[[m:Socket::Constants#プロトコル]]にある定数を指定します。
- flags - getaddrinfo(3) の第3引数に指定する addrinfo 構造体の
ai_flags メンバに相当する Fixnum。
Socket::AI_PASSIVE、
Socket::AI_CANONNAME、
Socket::AI_NUMERICHOST
が用意されている場合があります。
定数の意味について
引数に指定できる定数の意味については
getaddrinfo(3) を参照して下さい。
使用例
例:
p Socket.getaddrinfo(Socket.gethostname, "ftp")
#=> [["AF_INET", 21, "helium.ruby-lang.org", "210.251.121.214", 2, 1, 6]]
pp Socket.getaddrinfo(Socket.gethostname, nil)
#=> [["AF_INET", 0, "helium.ruby-lang.org", "210.251.121.214", 2, 1, 6],
# ["AF_INET", 0, "helium.ruby-lang.org", "210.251.121.214", 2, 2, 17],
# ["AF_INET", 0, "helium.ruby-lang.org", "210.251.121.214", 2, 3, 0]]