本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。