33 lines
1.0 KiB
Ruby
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
|