在我的某些系统上,我可以通过以下方式获取我的 IP 地址(192.68.mn 格式):
addr = IPSocket::getAddress(Socket.gethostname())
...问题在于,这仅在本地计算机为自己使用的名称是 DNS 服务器与其关联的名称时才有效。
*&#( ruby 只返回其主接口的 IP 地址有多难?我必须以独立于平台的方式执行此操作,或者我只需调用 ifconfig 或 ipconfig 并解析它。
在我的某些系统上,我可以通过以下方式获取我的 IP 地址(192.68.mn 格式):
addr = IPSocket::getAddress(Socket.gethostname())
...问题在于,这仅在本地计算机为自己使用的名称是 DNS 服务器与其关联的名称时才有效。
*&#( ruby 只返回其主接口的 IP 地址有多难?我必须以独立于平台的方式执行此操作,或者我只需调用 ifconfig 或 ipconfig 并解析它。
看到这个问题。还see Socket.getaddrinfo()
这个怎么样
require 'socket'
ipaddr = UDPSocket.open {|s| s.connect('65.59.196.211'); s.addr.last }
IP 地址可以是任何真实的(这是我为 stackoverflow.com 获得的),但它应该是您想要获取 IP 地址的接口上可访问的 IP 地址。由于它是一个 UDP 套接字,实际上没有尝试连接,但它会尝试找出要使用的接口。