Ruby 3.3 リファレンスマニュアル > ライブラリ一覧 > socketライブラリ > Addrinfoクラス > getaddrinfo
getaddrinfo(nodename, service, family=nil, socktype=nil, protocol=nil, flags=0) -> [Addrinfo]
[permalink][rdoc]パラメータから複数の Addrinfo オブジェクトを生成し、その配列を返します。
nodename (ホスト名) と service (ポート番号) を Addrinfo に変換します。変換先は一意ではないため、複数のオブジェクトを返します。
nodename と service のどちらか一方は nil を渡すことができます (その部分は変換されません)。
family, socktype, protocol には希望する方式のヒントを与えます。例えば、SOCK_STREAM なソケットが必要な場合には socktype に指定します。 nil を指定した場合には制限しないことを意味します。 IPv6 に制限したい場合には family に PF_INET6 を指定します。
flags には Socket::AI_??? という定数のビット OR を取ります。
アドレスの使い方がわかっている場合には socktype を明示すべきです。 socktype を省略して service を整数で指定した場合にエラーが生じるプラットフォームが存在します。512 のようなポート番号は socktype なしでは曖昧な指定となるためです。
例:
require 'socket' Addrinfo.getaddrinfo("www.kame.net", 80, nil, :STREAM) #=> [#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net:80)>, # #<Addrinfo: [2001:200:0:8002:203:47ff:fea5:3085]:80 TCP (www.kame.net:80)>]
[SEE_ALSO] Addrinfo.foreach, Socket.getaddrinfo