Я только что столкнулся с этой проблемой.Я согласился с драгоценным камнем net-ping в качестве замены.Он имеет четкий пример TCP-пинга в gems / net-ping-1.7.7 / examples / example_pingtcp.rb:
p1 = Net::Ping::TCP.new(good, 'http')
p p1.ping?
Ссылка rubydoc.info на момент написания этой статьине работает, но вот полезный комментарий в источнике модуля (tcp.rb)
# This method attempts to ping a host and port using a TCPSocket with
# the host, port and timeout values passed in the constructor. Returns
# true if successful, or false otherwise.
Так что я поменялся местами:
return Ping.pingecho(server, 5, 22)
С этим:
p = Net::Ping::TCP.new(server, 22, 5)
p.ping?
Существует два предупреждения при переходе от старого к новому эквивалентному модулю:
- Аргументы конструктора меняются местами (порт и время ожидания)
- Фактическийвызов ping выполняется путем вызова метода
ping?
, а не просто создания экземпляра.