本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。