<%= GMap.header %> <%require('whois/whois') %>
Quickvote Voters
<%= @map.to_html %> <%= @map.div(:width => 550, :height => 400) %>

<% for voter in @election.voters %> <% next unless voter.voted? %> <% end %>
IP/Host Organization Name
<% begin %> <% raise ArgumentError.new, "Local Server" if voter.ipaddress == "127.0.0.1" %> <% raise ArgumentError.new, "XML-RPC Voter" if voter.ipaddress == "XMLRPC Request" %> <% # Test for intranet addresses to avoid untimely DNS timeouts. # Of course the last regex is horrible; matches a few extra IP's that aren't intranet raise ArgumentError.new, "Intranet: #{voter.ipaddress}" if voter.ipaddress =~ /^192\.168/ or voter.ipaddress =~ /^10\./ or voter.ipaddress =~ /^169\.254/ or voter.ipaddress =~ /^172\.[1-3]/ %> <% w=nil if defined? Cache and w=Cache.get("WHOIS:#{voter.ipaddress}") elsif defined? Cache w= Whois::Whois.new(IPAddr.new(voter.ipaddress),true) w.search_whois Cache.set("WHOIS:#{voter.ipaddress}", w) else w= Whois::Whois.new(IPAddr.new(voter.ipaddress),true) w.search_whois end %> <%=h((w.host == nil or w.host.empty?) ? voter.ipaddress : w.host.reverse.slice(0,30).reverse)%> <%org=(w.all.grep(/^(OrgName|org-name)/)[0] or "").sub(/^(OrgName|org-name)\:/,'').strip+" - "+ (w.all.grep(/^(NetName|netname)/)[0] or "").sub(/^(NetName|netname)\:/,'').strip %> <% if org =~ /asdfasdf/ %> <%= "No additional information" %> <% else %> <%= h(org) %> <% end %> <% rescue ArgumentError => err %> <%=h err %> <%=h err%> <% rescue NoMethodError %> DNS Unreachable DNS Unreachable <% end %>