我有一个我从网上抓取的公共代理列表,但其中许多实际上并不是可连接的。我想用Ruby过滤这个列表。
如果我能成功连接到代理,我将如何制作一个函数使其返回true,否则返回false?
以下是一般概念:
def connectable?(proxy)
ip, port = proxy.split(':')
return true if connect(ip, port) == success
false
end
答案 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()'方法可以帮助你