# Net::Ping::HTTP inconsistencies

**URL:** <https://www.ruby-forum.com/t/net-http-inconsistencies/187212>\
**Category:** Ruby\
**Created:** [April 19, 2010, 11:33pm UTC](https://www.ruby-forum.com/t/net-http-inconsistencies/187212 "2010-04-19T23:33:05Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dewie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ac8455/32.png) [@dewie](https://www.ruby-forum.com/u/dewie)\
**Post date:** [April 19, 2010, 11:33pm UTC](https://www.ruby-forum.com/t/net-http-inconsistencies/187212/1 "2010-04-19T23:33:05Z")

</div>

I have multiple websites that are “up”. That is, they are accessible via  
the browser and return to the user content.

But…

> > require ‘net/ping’  
> > =\> true  
> > Net::Ping::HTTP.new(‘[somewebsite.com](http://somewebsite.com)’).ping?  
> > =\> false

And, sometimes (I stress, _sometimes_):

> > require ‘net/ping’  
> > =\> true  
> > Net::Ping::HTTP.new(‘[http://somewebsite.com](http://somewebsite.com)’).ping?  
> > =\> true

But then…

> > require ‘net/ping’  
> > =\> true  
> > Net::Ping::HTTP.new(‘[http://somewebsite.com](http://somewebsite.com)’).ping?  
> > =\> false

Why the inconsistency? More importantly, how can I achieve consistent  
results? It’s maddening when a website is obviously functional and yet I  
am told it’s not.

---

<div class="post-metadata">

**Author:** ![dewie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ac8455/32.png) [@dewie](https://www.ruby-forum.com/u/dewie)\
**Post date:** [April 19, 2010, 11:57pm UTC](https://www.ruby-forum.com/t/net-http-inconsistencies/187212/2 "2010-04-19T23:57:02Z")

</div>

system(%{echo “HEAD / HTTP/1.1\nHOST: [www.rabbitcreative.com](http://www.rabbitcreative.com)\n\n” | nc  
[http://www.rabbitcreative.com](http://www.rabbitcreative.com) 80})

Really? Ruby’s Net/\* libraries suck, apparently.

---

<div class="post-metadata">

**Author:** ![dewie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ac8455/32.png) [@dewie](https://www.ruby-forum.com/u/dewie)\
**Post date:** [April 20, 2010, 12:47am UTC](https://www.ruby-forum.com/t/net-http-inconsistencies/187212/3 "2010-04-20T00:47:52Z")

</div>

On Apr 19, 3:33 pm, Daniel W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > > require ‘net/ping’  
> > > =\> true  
> > > Net::Ping::HTTP.new(‘[http://somewebsite.com](http://somewebsite.com)’).ping?
> 
> =\> false
> 
> Why the inconsistency? More importantly, how can I achieve consistent  
> results? It’s maddening when a website is obviously functional and yet I  
> am told it’s not.

Try this and see if you can determine why it’s failing sometimes:

require ‘net/ping’

http = Net::Ping::HTTP.new(‘[http://somewebsite.com](http://somewebsite.com)’)

unless http.ping?  
puts "Ping failed: " + ping.exception  
end

Regards,

Dan

---

<div class="post-metadata">

**Author:** ![dewie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ac8455/32.png) [@dewie](https://www.ruby-forum.com/u/dewie)\
**Post date:** [April 20, 2010, 7:35am UTC](https://www.ruby-forum.com/t/net-http-inconsistencies/187212/4 "2010-04-20T07:35:47Z")

</div>

On 04/19/2010 11:57 PM, Daniel W. wrote:

> system(%{echo “HEAD / HTTP/1.1\nHOST: [www.rabbitcreative.com](http://www.rabbitcreative.com)\n\n” | nc  
> [http://www.rabbitcreative.com](http://www.rabbitcreative.com) 80})
> 
> Really? Ruby’s Net/\* libraries suck, apparently.

On what basis do you come to this conclusion? Maybe your webserver is  
not accepting all connection attempts to control the load. Maybe there  
are network issues. So far I have not seen evidence that there is  
something wrong with Ruby’s net library. (Btw, which version are you  
using?)

Cheers

robert

---

<div class="post-metadata">

**Author:** ![dewie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ac8455/32.png) [@dewie](https://www.ruby-forum.com/u/dewie)\
**Post date:** [April 20, 2010, 5:15pm UTC](https://www.ruby-forum.com/t/net-http-inconsistencies/187212/5 "2010-04-20T17:15:58Z")

</div>

On Apr 19, 3:57 pm, Daniel W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> system(%{echo “HEAD / HTTP/1.1\nHOST:www.rabbitcreative.com\n\n” | nchttp://www.rabbitcreative.com80})
> 
> Really? Ruby’s Net/\* libraries suck, apparently.

net-ping isn’t part of the Ruby standard library. There’s a ping  
library, but net-ping is a different beast.

Also, your problem did inspire me to make one change, which is to  
alter the Net::Ping::HTTP class so that a URI without a path assumes  
‘/’ for the path.

Regards,

Dan
