gpt4 book ai didi

ruby - 从 Ruby 中的主机名获取 IP 地址

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:20 24 4
gpt4 key购买 nike

我有一个存储主机名的 Ruby 数组 server_names。如果我打印出来,它看起来像这样:

["hostname.abc.com", "hostname2.abc.com", "hostname3.abc.com"]

相当标准。我想要做的是获取这些服务器的 IP(可能将它们存储在另一个变量中)。

看起来 IPSocket 类可以做到这一点,但我不确定如何使用 IPSocket 类遍历它。如果它只是尝试像这样打印出 IP:

server_names.each do |name|
IPSocket::getaddress(name)
p name
end

它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?

输出:

getaddrinfo: nodename nor servname provided, or not known

最佳答案

您最好使用 Resolv ,它是 Ruby 标准库的一部分,专门设计用于处理解析 DNS 条目。

来自 Ruby 文档:

Resolv is a thread-aware DNS resolver library written in Ruby. Resolv can handle multiple DNS requests concurrently without blocking the entire Ruby interpreter.

例子:

require "resolv"

server_names.each do |name|
address = Resolv.getaddress(name)
puts address
end

关于ruby - 从 Ruby 中的主机名获取 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com