Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中检查代理是否可连接?_Ruby_Networking_Proxy - Fatal编程技术网

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

如何在Ruby中检查代理是否可连接?,ruby,networking,proxy,Ruby,Networking,Proxy,我有一个从网络上抓取的公共代理列表,但其中许多实际上是不可连接的。我想用Ruby过滤这个列表 如果我能够成功连接到代理,我将如何设计一个函数,使其返回true,否则返回false 以下是总体思路: def connectable?(proxy) ip, port = proxy.split(':') return true if connect(ip, port) == success false end 您可以使用“ping”库: require 'net/ping' def

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

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

以下是总体思路:

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

您可以使用“ping”库:

require 'net/ping'

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

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

只需像以前那样尝试连接到它,如果连接成功,不要忘记关闭连接。Ping没有测试正确的东西。

Net::Ping::TCP类在TCPSocket上工作。正如文档中所说,使用TCP ping只需尝试打开一个连接。如果我们成功了,假设成功了。但是它没有连接到代理使用的同一端口。它只确定主机是否在那里,而不是代理服务器。。。如果我能成功连接到代理。代码段中的代码在给定端口上建立到给定主机的TCP连接—它可以是任何端口。如果我错误或误解了问题说明,请纠正我。连接来自哪里?