本文简要介绍ruby语言中 Socket.getaddrinfo
的用法。
用法
getaddrinfo(nodename, servname[, family[, socktype[, protocol[, flags[, reverse_lookup]]]]]) → array
获取nodename
的地址信息:servname
。
请注意, Addrinfo.getaddrinfo
以面向对象的风格提供相同的函数。
family
应该是地址族,例如::INET、:INET6 等。
socktype
应该是套接字类型,例如::STREAM、:DGRAM、:RAW 等。
protocol
应该是族中定义的协议,族默认为0。
flags
应该是 Socket::AI_* 常量的按位或。
Socket.getaddrinfo("www.ruby-lang.org", "http", nil, :STREAM)
#=> [["AF_INET", 80, "carbon.ruby-lang.org", "221.186.184.68", 2, 1, 6]] # PF_INET/SOCK_STREAM/IPPROTO_TCP
Socket.getaddrinfo("localhost", nil)
#=> [["AF_INET", 0, "localhost", "127.0.0.1", 2, 1, 6], # PF_INET/SOCK_STREAM/IPPROTO_TCP
# ["AF_INET", 0, "localhost", "127.0.0.1", 2, 2, 17], # PF_INET/SOCK_DGRAM/IPPROTO_UDP
# ["AF_INET", 0, "localhost", "127.0.0.1", 2, 3, 0]] # PF_INET/SOCK_RAW/IPPROTO_IP
reverse_lookup
指示第三个元素的形式,并且必须是以下之一。如果省略reverse_lookup
,则默认值为nil
。
+true+, +:hostname+: hostname is obtained from numeric address using reverse lookup, which may take a time. +false+, +:numeric+: hostname is the same as numeric address. +nil+: obey to the current +do_not_reverse_lookup+ flag.
如果首选 Addrinfo
对象,请使用 Addrinfo.getaddrinfo
。
相关用法
- Ruby Socket.getservbyport用法及代码示例
- Ruby Socket.gethostname用法及代码示例
- Ruby Socket.getnameinfo用法及代码示例
- Ruby Socket.gethostbyaddr用法及代码示例
- Ruby Socket.getservbyname用法及代码示例
- Ruby Socket.getifaddrs用法及代码示例
- Ruby Socket.gethostbyname用法及代码示例
- Ruby Socket.pair用法及代码示例
- Ruby Socket.udp_server_sockets用法及代码示例
- Ruby Socket.unpack_sockaddr_in用法及代码示例
- Ruby Socket.udp_server_recv用法及代码示例
- Ruby Socket.new用法及代码示例
- Ruby Socket.tcp用法及代码示例
- Ruby Socket.listen用法及代码示例
- Ruby Socket.unix_server_loop用法及代码示例
- Ruby Socket.sockaddr_un用法及代码示例
- Ruby Socket.accept用法及代码示例
- Ruby Socket.recvfrom_nonblock用法及代码示例
- Ruby Socket.tcp_server_sockets用法及代码示例
- Ruby Socket.bind用法及代码示例
- Ruby Socket.unix_server_socket用法及代码示例
- Ruby Socket.accept_nonblock用法及代码示例
- Ruby Socket.recvfrom用法及代码示例
- Ruby Socket.unix用法及代码示例
- Ruby Socket.ip_address_list用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Socket.getaddrinfo。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。