@election=QuickVote.ident_to_quickvote(params[:id])
@election.voters.each do |voter|
next unless voter.ipaddress
- location = GeoKit::Geocoders::IpGeocoder.geocode(voter.ipaddress)
+ location=nil
+ if Cache and location=Cache.get("GEO:#{voter.ipaddress}")
+ elsif Cache
+ location = GeoKit::Geocoders::IpGeocoder.geocode(voter.ipaddress)
+ Cache.set "GEO:#{voter.ipaddress}", location
+ else
+ location = GeoKit::Geocoders::IpGeocoder.geocode(voter.ipaddress)
+ end
next unless location.lng and location.lat
unless center
voter.ipaddress =~ /^172\.[1-3]/
%>
<% w=nil
+ puts "WHOIS #{voter.ipaddress}"
if Cache and w=Cache.get("WHOIS:#{voter.ipaddress}")
elsif Cache
- w= Whois::Whois.new(IPAddr.new(voter.ipaddress),true)
+ puts "CREATE"
+ w= Whois::Whois.new(IPAddr.new(voter.ipaddress),false)
+ puts "SEARCH"
w.search_whois
+ puts "DONE"
Cache.set("WHOIS:#{voter.ipaddress}", w)
else
- w= Whois::Whois.new(IPAddr.new(voter.ipaddress),true)
+ w= Whois::Whois.new(IPAddr.new(voter.ipaddress),false)
w.search_whois
end
arr_tmp = ip_hash.sort{|b,c| c[0][/\/(.+)/, 1].to_i <=> b[0][/\/(.+)/, 1].to_i}
arr_tmp.each do |l|
ip_range = IPAddr.new l[0]
- if ip_range.include? self.ip
+ if ip_range.include? self.ip and l[1].length > 0
return Object.instance_eval("Server::#{l[1]}.new")
end
+ return Server::Ripe.new
end
end
ipv6_list = YAML::load_file(File.dirname(__FILE__) + '/data/ipv6.yaml')
server = server_with_hash(ipv6_list)
unless server.kind_of? Server::Server
- raise WhoisException.new("no server found for this IPv6 : #{self.ip}")
+ return Server::Ripe.new
else
return server
end
ipv4_list = YAML::load_file(File.dirname(__FILE__) + '/data/ipv4.yaml')
server = server_with_hash(ipv4_list)
unless server.kind_of? Server::Server
- raise WhoisException.new("no server found for this IPv4 : #{self.ip}")
+ return Server::Ripe.new
else
return server
end