peertracker/ruby/lib/as_info.rb
2013-01-25 10:29:40 +01:00

33 lines
1.0 KiB
Ruby

Bundler.require
require File.join(File.dirname(__FILE__), "../config/database.rb")
require File.join(File.dirname(__FILE__), "./model/peer.rb")
require File.join(File.dirname(__FILE__), "./url_creator.rb")
require File.join(File.dirname(__FILE__), "./http_request.rb")
require File.join(File.dirname(__FILE__), "./whois_request.rb")
require File.join(File.dirname(__FILE__), "./as_parser.rb")
module Peertracker
class ASInfo
def set_as_info_for_ip(ip_address)
raw_code = WhoisRequest.new.get_as_info(ip_address)
raw_country = WhoisRequest.new.get_country_info(ip_address)
ASParser.new.parse_response(raw_code, raw_country)
end
class << self
def set_as_info
Peer.without_as_info.each do |peer|
begin
puts "Parsing #{peer.ip}"
peer.as_code, peer.country = self.new.set_as_info_for_ip(peer.ip)
peer.save
rescue => e
puts "Could not fetch AS for #{peer.ip}"
puts "#{e.to_s}"
end
end
end
end
end
end