首页 > 解决方案 > Ruby 程序的 ping 结果不正确

问题描述

我使用以下代码片段 ping 一系列 IP 并检查它们是否可访问:

class Ping
  def self.pingecho(host = string.new, timeout = 10, service = "echo")
    begin
      puts host
      while(timeout) do
        s = TCPSocket.new(host, service)
        s.close
      end
    rescue Errno::ECONNREFUSED
      return true
    rescue Timeout::Error, StandardError
      return false
    end
    return true
  end
end

它返回正确的状态,除了我列表中的两个 IP,代码返回false. 但是当我尝试使用 ping 命令通过命令提示符直接 ping 它们时,我得到了没有任何问题的响应。如果这是代码的问题,那么我也应该得到其他 IP 的错误结果。但我只有这两个有这个问题。

我试图将这些 IP 直接传递给类:

Ping::pingecho(10.xx.xx.xx)

但我仍然得到结果false

关于需要检查/纠正什么的任何建议?

标签: rubyping

解决方案


推荐阅读