ruby ping for 1.9.1

前端 未结 4 1043
萌比男神i
萌比男神i 2021-02-03 10:37

I want to ping a site in my ruby code and saw that net-ping was a nice library to do this with. Unfortunately, when I tried to gem install net-ping I got the following error:

相关标签:
4条回答
  • 2021-02-03 10:43

    You can always do this and use regexps to parse the result or just check the exit status:

    ping_count = 10
    server = "www.google.com"
    result = `ping -q -c #{ping_count} #{server}`
    if ($?.exitstatus == 0) do
      puts "Device is up!"
    end
    

    Ping return values that you can check against:

    The ping utility returns an exit status of zero if at least one response was heard from the specified host; a status of two if the transmission was successful but no responses were received; or another value (from <sysexits.h>) if an error occurred.

    http://www.manpagez.com/man/8/ping

    0 讨论(0)
  • 2021-02-03 10:47

    For windows follow these instructions:

    download djberg96-net-ping-net-ping-1.5.3-0-g9252076.zip from github.com/djberg96/net-ping
    unzip, cd in the folder
    gem build net-ping.gemspec
    gem install net-ping-1.5.3-universal-mingw32.gem
    gem install win32-security
    

    to use it:

    require 'net/ping'
    p Net::Ping::TCP.new('www.google.com', 'http').ping?
    p Net::Ping::TCP.new('foo.bar.baz').ping?
    
    0 讨论(0)
  • 2021-02-03 11:01

    If by 'site' you mean website, then I wouldn't use ping. Ping will tell you if the host is up (unless a router or firewall is blocking ICMP), but it won't tell you if your web server or web app is responding properly.

    If that's the case, I'd recommend Net::HTTP from the standard library, or any of the other HTTP libraries. One way to do it is:

    def up?(site)
      Net::HTTP.new(site).head('/').kind_of? Net::HTTPOK
    end
    
    up? 'www.google.com' #=> true
    
    0 讨论(0)
  • 2021-02-03 11:07

    Use from source

    gem "net-ping", :git => 'git://github.com/djberg96/net-ping.git'
    # bundle install
    

    Now you can use functions from it in 1.9.2

    0 讨论(0)
提交回复
热议问题