Извините, но это ошибка с отсутствующим 74.0.0.0/8
назначением, и, если вы создаете свое собственное, его, вероятно, неправильно ищут в списке defined
, таким образом => Назначение по IP в настоящее время не выполняетсяработа.
Почему?
Вы можете проверить список и узнать, какие диапазоны назначены для ARIN:
Whois::Server.definitions(:ipv4).each { |records| p "IP range #{records[0]}" if records[1] = 'whois.arin.net'}
Сначала без каких-либо изменений вы проверяете свой IP-адрес:
Whois::Server.find_for_ip("74.220.215.203")
=> #<Whois::Server::Adapters::Arin:0x00000000030244c0 @type=:ipv4, @allocation="0.0.0.0/1", @host="whois.arin.net", @options={}>
Как вы можете видеть, запись не найдена в органах власти, поэтому она переходит к запасному 0.0.0.0/1
, который установлен на whois.arin.net
.
Я пытался установить fatory
(как-то игнорируется) и define
:
Whois::Server.factory :ipv4, "74.0.0.0/8", "whois.iana.org", :option => Whois::Server::Adapters::Standard
define
работал:
Whois::Server.define :ipv4, "74.0.0.0/8", "whois.iana.org"
..., {}], ["222.120.0.0/ 15 "," whois.nic.or.kr ", {}], [" 222.122.0.0/16 "," whois.nic.or.kr ", {}], [" 222.232.0.0/13 ","whois.nic.or.kr", {}], ["220.0.0.0/6", "whois.apnic.net", {}], ["74.0.0.0/8", "whois.iana.org", {}]]
Как вы можете видеть, есть присвоение
["74.0.0.0/8",
> "whois.iana.org", {}]]
, поэтому вы должны иметь возможность запрашивать IANA сейчас?Похоже, вы не:
Whois::Server.find_for_ip("74.220.215.203")
=> #<Whois::Server::Adapters::Arin:0x000000000434c250 @type=:ipv4, @allocation="0.0.0.0/1", @host="whois.arin.net", @options={}>
Как видите, @allocation
все еще получает "0.0.0.0/1"
, а не 74.0.0.0/8
.Зачем?Это я еще не знаю.Возможно, какая-то ошибка либо при поиске, либо при поиске правильного Объекта.
Все потеряно?Не совсем, есть довольно простой обходной путь, но вы должны понимать последствия.
Обходное решение
Если вы определяете свой запасной адрес с помощью:
Whois::Server.define :ipv4, "0.0.0.0/1", "whois.iana.org"
Все начинает работать,Теперь все резервные запросы будут выполняться через IANA, что не должно быть проблемой в вашем случае, так как вы все равно не можете связаться с ARIN.
Теперь, если вы делаете запрос через IP-адрес, вы получите правильные результаты:
Whois::Server.find_for_ip("74.220.215.203")
=> #<Whois::Server::Adapters::Standard:0x000000000351c298 @type=:ipv4, @allocation="0.0.0.0/1", @host="whois.iana.org", @options={}>
Whois.whois("74.220.215.203")
=> "% IANA WHOIS server\n% for more information on IANA, visit http://www.iana.org\n% This query returned 1 object\n\nrefer: whois.arin.net\n\ninetnum:
74.0.0.0 - 74.255.255.255\norganisation: ARIN\nstatus: ALLOCATED\n\nwhois: whois.arin.net\n\nchanged: 2005-06\nsource: IANA\n\n"