如何检查代理是否可以在Ruby中连接?

时间:2011-10-17 18:37:30

标签: ruby networking proxy

我有一个我从网上抓取的公共代理列表,但其中许多实际上并不是可连接的。我想用Ruby过滤这个列表。

如果我能成功连接到代理,我将如何制作一个函数使其返回true,否则返回false?

以下是一般概念:

def connectable?(proxy)
  ip, port = proxy.split(':')
  return true if connect(ip, port) == success
  false
end

2 个答案:

答案 0 :(得分:3)

试着像你一样尝试连接它,如果成功则不要忘记关闭连接。 Ping没有测试正确的东西。

答案 1 :(得分:2)

您可以使用'ping'库:

require 'net/ping'

def connectable?(proxy)
  host, port = proxy.split(':')
  return Net::Ping::TCP.new(host, port).ping
end

如果你必须使用ip地址而不是主机名,'resolve'模块中的'Resolv.getname()'方法可以帮助你