Last active
January 3, 2024 09:08
-
-
Save DiogoAndre/5056521 to your computer and use it in GitHub Desktop.
Simple ICMP Ping script in Ruby. Using the Net-Ping gem https://github.com/djberg96/net-ping
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'net/ping' | |
@icmp = Net::Ping::ICMP.new('142.40.81.34') | |
rtary = [] | |
pingfails = 0 | |
repeat = 5 | |
puts 'starting to ping' | |
(1..repeat).each do | |
if @icmp.ping | |
rtary << @icmp.duration | |
puts "host replied in #{@icmp.duration}" | |
else | |
pingfails += 1 | |
puts "timeout" | |
end | |
end | |
avg = rtary.inject(0) {|sum, i| sum + i}/(repeat - pingfails) | |
puts "Average round-trip is #{avg}\n" | |
puts "#{pingfails} packets were droped" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
run ping.rb |
Having same issue @johngrindal described: the duration function not working. Does anyone know why? I'm on Windows.
Ok I figured it out: I was calling @my_ping.duration
before actually executing the ping with @my_ping.ping
😁
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I took some inspiration from this and made some adjustments for my own purposes. Hopefully it's helpful.
https://gist.github.com/newlandk/20521c9abf85a4db9a32
@john916, you're probably looking for
print "Hostname: "
host = STDIN.gets.chomp