Неверный результат проверки связи с программой Ruby - PullRequest
0 голосов
/ 13 февраля 2019

Я использую следующий фрагмент кода, чтобы проверить связь с серией 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, я получаю ответ без проблем.Если это проблема с кодом, то я должен получить неправильные результаты и для других IP-адресов.Но у меня есть эта проблема только с этими двумя.

Я пытался передать эти IP-адреса непосредственно классу как:

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

, но все равно получаю результат как false.

Любые предложения о том, что необходимо проверить / исправить?

...