Skip to content

Instantly share code, notes, and snippets.

@careo
Created January 26, 2009 01:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save careo/52647 to your computer and use it in GitHub Desktop.
Save careo/52647 to your computer and use it in GitHub Desktop.
require 'pp'
require 'rubygems'
require 'eventmachine'
require 'dnsruby'
require '/Users/djensen/Source/Ruby/em-http-request/lib/em-http'
res = Dnsruby::Resolver.new # use system defaults
Dnsruby::Resolver.use_eventmachine
Dnsruby::Resolver.start_eventmachine_loop(false)
# Will timeout
uri_of_doom = URI.parse "http://jan.kneschke.de/feed/atom.xml"
# Needs host header set
#uri_of_doom = URI.parse "http://gregmankiw.blogspot.com/feeds/posts/default"
EventMachine.run {
uri = uri_of_doom.clone
p "lookup #{uri.host}"
df = res.send_async Dnsruby::Message.new(uri.host)
df.callback {|msg|
ip = msg.answer.find { |rr| rr.type == "A"}.rdata.to_s
uri.host = ip
req = EventMachine::HttpRequest.new(uri.to_s)
p req
http = req.get :head => {:host => uri_of_doom.host}
http.callback {
p http.response_header.status
p http.response_header
puts http.response
p "\n"
EventMachine.stop
}
}
df.errback {|msg, err|
print "Sorry - can't resolve #{uri_of_doom}. Error = #{err}n"
EventMachine.stop
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment