X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/8ae0d71896fa022dd80e5a5de993e1382564fcb1..8f1a5a8b6f7f44d557e8772a6f1b7025b406bb4d:/lib/whois/whois.rb?ds=inline diff --git a/lib/whois/whois.rb b/lib/whois/whois.rb index 9b07aef..962a399 100755 --- a/lib/whois/whois.rb +++ b/lib/whois/whois.rb @@ -4,6 +4,8 @@ require 'socket' require 'resolv' require 'ipaddr' require 'yaml' +require 'timeout' + require File.dirname(__FILE__) + '/server/server' # Module for manage all Whois Class @@ -92,7 +94,11 @@ module Whois def search_host begin if @host_search - @host = Resolv.getname self.ip.to_s + begin + timeout(5) {@host = Resolv.getname self.ip.to_s} + rescue Timeout::Error + @host=nil + end else @host = nil end @@ -121,9 +127,10 @@ module Whois 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::Arin.new end end @@ -132,7 +139,7 @@ module Whois 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::Arin.new else return server end @@ -143,7 +150,7 @@ module Whois 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