本文簡要介紹ruby語言中 Addrinfo.getaddrinfo
的用法。
用法
getaddrinfo(nodename, service, family, socktype, protocol, flags) → [addrinfo, ...]
getaddrinfo(nodename, service, family, socktype, protocol) → [addrinfo, ...]
getaddrinfo(nodename, service, family, socktype) → [addrinfo, ...]
getaddrinfo(nodename, service, family) → [addrinfo, ...]
getaddrinfo(nodename, service) → [addrinfo, ...]
以數組形式返回 addrinfo 對象列表。
此方法將節點名(主機名)和服務(端口)轉換為 addrinfo。由於轉換不是唯一的,因此結果是 addrinfo 對象的列表。
如果不打算進行轉換,nodename 或 service 可以為 nil。
family、socktype 和 protocol 是首選協議的提示。如果結果將用於帶有SOCK_STREAM 的套接字,則應將SOCK_STREAM 指定為socktype。如果是這樣, Addrinfo.getaddrinfo
返回適用於 SOCK_STREAM 的 addrinfo 列表。如果省略它們或給出 nil,則結果不受限製。
同樣,PF_INET6 作為 IPv6 的係列限製。
flags 應該是 Socket::AI_ 的按位或?常量如下。請注意,常量的確切列表取決於操作係統。
AI_PASSIVE Get address to use with bind() AI_CANONNAME Fill in the canonical name AI_NUMERICHOST Prevent host name resolution AI_NUMERICSERV Prevent service name resolution AI_V4MAPPED Accept IPv4-mapped IPv6 addresses AI_ALL Allow all addresses AI_ADDRCONFIG Accept only if any address is assigned
請注意,隻要應用程序知道地址的使用情況,就應該指定 socktype。當省略 socktype 並將 servname 指定為整數時,某些平台會導致錯誤,因為某些端口號(例如 512)在沒有 socktype 的情況下是不明確的。
Addrinfo.getaddrinfo("www.kame.net", 80, nil, :STREAM)
#=> [#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net)>,
# #<Addrinfo: [2001:200:dff:fff1:216:3eff:feb1:44d7]:80 TCP (www.kame.net)>]
相關用法
- Ruby Addrinfo.getnameinfo用法及代碼示例
- Ruby Addrinfo.ip_address用法及代碼示例
- Ruby Addrinfo.connect_from用法及代碼示例
- Ruby Addrinfo.inspect_sockaddr用法及代碼示例
- Ruby Addrinfo.unix用法及代碼示例
- Ruby Addrinfo.unix?用法及代碼示例
- Ruby Addrinfo.canonname用法及代碼示例
- Ruby Addrinfo.ip用法及代碼示例
- Ruby Addrinfo.afamily用法及代碼示例
- Ruby Addrinfo.family_addrinfo用法及代碼示例
- Ruby Addrinfo.to_sockaddr =>用法及代碼示例
- Ruby Addrinfo.connect用法及代碼示例
- Ruby Addrinfo.foreach用法及代碼示例
- Ruby Addrinfo.tcp用法及代碼示例
- Ruby Addrinfo.unix_path用法及代碼示例
- Ruby Addrinfo.inspect用法及代碼示例
- Ruby Addrinfo.ip_port用法及代碼示例
- Ruby Addrinfo.ipv4?用法及代碼示例
- Ruby Addrinfo.connect_to用法及代碼示例
- Ruby Addrinfo.ip_unpack用法及代碼示例
- Ruby Addrinfo.ip?用法及代碼示例
- Ruby Addrinfo.pfamily用法及代碼示例
- Ruby Addrinfo.protocol用法及代碼示例
- Ruby Addrinfo.udp用法及代碼示例
- Ruby Addrinfo.socktype用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Addrinfo.getaddrinfo。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。