LoginSignup
1
1

More than 5 years have passed since last update.

http ping 的なものを即興で

Last updated at Posted at 2013-08-06

引数で http://google.com みたいな文字列を受け取ると、そこに 10回 http アクセスして結果と要した時間を表示します。

エラー処理はしてないし、末尾の / 補完もインターバルも設定できないけど、ひな形として置いておきます。

たまにこういうベタなスクリプトをちょっとだけカスタマイズしたものが単発でほしくなることがあるのです。

http_ping.rb
#!/usr/bin/env ruby

require 'net/http'
require 'uri'

COUNT=10
INTERVAL=1

def ping(s)
  url = URI.parse(s)
  res = Net::HTTP.start(url.host, url.port) {|http|
       path = url.path.length != 0 ? url.path : "/"
       http.get(path)
  }
  res.body
  "#{res.code} #{res.msg}"
rescue => e
  "error #{e.message}"
end

target = ARGV[0]
COUNT.times do
  t0 = Time.now
  result = ping(target)
  t1 = Time.now
  puts "#{result}  #{t1 - t0} sec"
  sleep INTERVAL
end

実行結果は以下のようになります。

./http_ping.rb http://qiita.com

200 OK  0.835151 sec
200 OK  0.265178 sec
200 OK  0.22323 sec
200 OK  0.81516 sec
200 OK  0.147743 sec
200 OK  0.159017 sec
200 OK  0.255269 sec
200 OK  0.150393 sec
200 OK  0.173694 sec
200 OK  0.265928 sec
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1