Lan*_*ard 16 ruby browser internet-connection
刚刚问到如何使用javascript检查是否存在互联网连接,并得到了一些很好的答案.在Ruby中最简单的方法是什么?在尝试使生成的html标记代码尽可能干净时,我想有条件地渲染javascript文件的脚本标记,具体取决于是否存在Internet条件.像(这是HAML)的东西:
- if internet_connection?
%script{:src => "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", :type => "text/javascript"}
- else
%script{:src => "/shared/javascripts/jquery/jquery.js", :type => "text/javascript"}
Run Code Online (Sandbox Code Playgroud)
MrK*_*isF 19
require 'open-uri'
def internet_connection?
begin
true if open("http://www.google.com/")
rescue
false
end
end
Run Code Online (Sandbox Code Playgroud)
这更接近OP正在寻找的东西.它适用于Ruby 1.8和1.9.它也有点清洁.
Aut*_*ico 10
我喜欢每个人都认为googles服务器正常运行.积分谷歌.
如果你想知道你是否有互联网而不依赖谷歌,那么你可以使用DNS来查看你是否能够获得连接.
您可以使用Ruby DNS Resolv尝试将URL转换为IP地址.适用于Ruby版本1.8.6+
所以:
#The awesome part: resolv is in the standard library
def has_internet?
require "resolv"
dns_resolver = Resolv::DNS.new()
begin
dns_resolver.getaddress("symbolics.com")#the first domain name ever. Will probably not be removed ever.
return true
rescue Resolv::ResolvError => e
return false
end
end
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人:)
你可以使用这Ping门课.
require 'resolv-replace'
require 'ping'
def internet_connection?
Ping.pingecho "google.com", 1, 80
end
Run Code Online (Sandbox Code Playgroud)
该方法返回true或false不引发异常.