当前位置: 首页 > 知识库问答 >
问题:

计算ping网站时的响应时间(Ruby)

段干弘扬
2023-03-14

我已经用ruby编写了以下代码来ping一个网站并检查响应。如果响应为真,则网站响应良好,但如果为假,则表明网站没有响应。

require 'net/http'
require 'uri'


def ping(host)
begin
 url=URI.parse(host)
 response=Net::HTTP.get(url)
   if response==""
     return false
   else
     return true
   end
   rescue Errno::ECONNREFUSED
     return false
 end
end

此代码工作正常,但无法计算网站响应的响应时间。

所以我的问题是如何计算网站响应的响应时间??

共有3个答案

姬锐
2023-03-14

这里的答案不显示服务器响应时间,它显示:

  • 在ruby中发送请求所花费的时间
  • 请求的网络时间
  • 服务器的响应时间
  • 响应的网络时间
  • 在ruby中处理响应所花费的时间

如果只需要查看服务器处理请求所用的时间,则需要使用另一种方法。您可以使用HTTP响应头。日期标题尤其可以帮助您实现这一点。

我建议使用curl

response_time_total = `curl -w \"%{time_total}\" google.com -o /dev/null -s`

您可以在终端中试用:

curl -w \"%{time_total}\n\" google.com -o /dev/null -s

您可以获得不同的指标,如time_namelookuptime_connecttime_starttransfertime_redirect等。示例:

response_times = `curl -w \"%{time_connect}:%{time_starttransfer}:%{time_total}\" google.com -o /dev/null -s`
time_connect, time_starttransfer, time_total = response_times.split(':')

所有可用的指标和详细信息都可以在cURL手册页上找到

裁判

如何获取服务器的响应时间?

如何使用cURL一次测量请求和响应时间?

宰父熙云
2023-03-14

增加时间怎么样。现在在url=URI之后。解析(主机)和响应后?

马边浩
2023-03-14
require 'net/http'
require 'uri'

def ping(host)
  begin
    url = URI.parse(host)
    start_time = Time.now
    response = Net::HTTP.get(url)
    end_time = Time.now - start_time

    if response==""
      return false
    else
      puts "response time : #{end_time}"
      return true
    end

  rescue Errno::ECONNREFUSED
    return false
  end
end

ping "http://www.google.com"

希望这能有所帮助

 类似资料:
  • 我使用了JMeter2.8 我已经使用web服务调用测试了Http请求。我需要计算响应时间。我不知道怎么计算 我已经参考了这个链接。我认为他们在Jmeter中使用了一些插件。是否需要使用插件来计算响应时间? 在这个问题中还提到了最后一个字节的时间和第一个字节的时间 在哪里可以找到这两个变量n Jmeter

  • 对我来说,非常奇怪的是jmeter没有为RestCall带来响应时间。 这些都可能保存在JTL/CSV文件中: 我的问题是,如果响应时间等于上面的一个数据,或者我是否可以手动计算和一些值并得到它。 PS:我之所以没有简单地使用Jmeter响应时间图,是因为我将数据发送到Datadog(度量工具)。

  • 我正试图在RoR上创建一个计算时间的应用程序。 当您按下开始按钮时,它会拉Time.now,然后,当您按下停止时,它会再次拉Time.now,然后计算两者之间的时间量。然后它会通过to_i将给定的秒转换为整数,然后将整数秒计算为小时:分钟:秒 然而,我的代码出了点问题,它不停地抛出一个又一个错误。 当前顺序为 nil:NilClass 的“未定义方法 '-'”

  • 2.17 响应时间(边缘) 2.17.1 描述 返回5分钟颗粒度的状态码明细数据,主要返回时间戳、省份、运营商、HIT/MISS、状态码、响应时间、请求数 2.17.2 请求地址 地址: https://api.bokecs.com/channel/responseTime?time={time}domain={domain} 2.17.3 请求方式 GET 2.17.4 请求参数 参数名称 是否

  • 对于移动优先、响应快速的网站,在 Dreamweaver 中使用 Bootstrap 初学者模板和拖放 Bootstrap 组件。 Bootstrap 是用于开发响应迅速、移动优先网站的受欢迎的免费 HTML、CSS 和 JavaScript 框架。该框架包括响应迅速的 CSS 和 HTML 模板,这些模板适用于按钮、表格、导航、图像旋转视图以及您可能会在网页上使用的其他元素。它提供了几个可选的

  • 如果我执行类似于它工作正常。 但是,我找不到一种方法使其适用于ping。我尝试了机器人ID和名称。我的机器人ID代码: 有人能帮忙吗?