diff --git a/netlist.rb b/netlist.rb index 3377e3e..d495f98 100644 --- a/netlist.rb +++ b/netlist.rb @@ -11,8 +11,10 @@ org_search_results = Subexec.run("curl -s -H \"Accept: application/json\" \"http://whois.arin.net/rest/orgs;name=#{target_org}*\"").output begin org_search_results = JSON.parse(org_search_results) - org_search_results["orgs"]["orgRef"].each do |org| - orgs[org["@name"]] = {:handle => org["@handle"] } + results = org_search_results["orgs"]["orgRef"] + results = [results] if results.kind_of? Hash + results.each do |org| + orgs[org["@handle"]] = {:name => org["@name"] } end rescue "" @@ -23,12 +25,12 @@ orgs.each do |org, info| orgs[org][:nets] = {} - nets_search_results = Subexec.run("curl -s -H \"Accept: application/json\" \"http://whois.arin.net/rest/org/#{info[:handle]}/nets\"").output + nets_search_results = Subexec.run("curl -s -H \"Accept: application/json\" \"http://whois.arin.net/rest/org/#{org}/nets\"").output begin nets_search_results = JSON.parse(nets_search_results) nets_search_results["nets"]["netRef"] = [nets_search_results["nets"]["netRef"]] if nets_search_results["nets"]["netRef"].class != Array nets_search_results["nets"]["netRef"].each do |info| - orgs[org][:nets][info["@name"]] = { :start => info["@startAddress"], :end => info["@endAddress"] } + orgs[org][:nets][info["@handle"]] = { :start => info["@startAddress"], :end => info["@endAddress"] } end rescue "" @@ -36,7 +38,7 @@ end orgs.each do |k, v| - puts "----- #{k} (#{v[:handle]}) -----" + puts "----- #{v[:name]} (#{k}) -----" v[:nets].each do |netk, netv| puts "\n* #{netk}\n #{netv[:start]} - #{netv[:end]}\n" end