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