Разобрать ответ whois

Я хочу создать такой класс whois

public class DomainInfo
{

     public string NameServer {get;set;}        
     public string CreationDate {get;set;}
     public string UpdatedDate {get;set;} 
     public string ExpirationDate {get;set;}
     public string Status {get;set;}        
     public string RegistrantName {get;set;}
     public string RegistrantOrganization {get;set;}
     public string Registrantemail {get;set;}        
     public static DomainInfo Parse(string inputData)
  {
     ......
  }
}

Но у меня есть некоторые проблемы, потому что разные DNS-серверы возвращают разные ответы, и очень сложно анализировать возвращенные ответы. Как это может быть сделано?


person Neir0    schedule 09.03.2010    source источник
comment
Вы имеете в виду разные серверы whois? Поскольку DNS-серверы не являются серверами whois, это совершенно другой протокол.   -  person bortzmeyer    schedule 10.03.2010
comment
Я знаю, что это поздний ответ, но я подумал, что добавлю свои два цента; вам нужно создать синтаксический анализатор для каждого TLD и gTLD (всех 1000+), я бы не стал предлагать этот путь, если только вы не знаете, что вам понадобится всего несколько TLD. Помимо анализа данных, также необходимо учитывать и планировать политики ограничения скорости и блокировки, поэтому я перестал пытаться создать собственное решение и просто начал использовать размещенное решение.   -  person sousdev    schedule 03.09.2016


Ответы (2)


Вот ссылка на сообщение в блоге с кодом C#, который может помочь:

http://blog.flipbit.co.uk/2009/06/querying-whois-server-data-with-c.html

Вероятно, вы могли бы настроить код синтаксического анализа, когда сталкиваетесь со случаями, когда вы не получаете нужные вам данные, но я не думаю, что существует универсальное решение для всех.

person Kelsey    schedule 09.03.2010
comment
Создание собственного синтаксического анализатора приведет к большому количеству ошибок и неправильному синтаксическому анализу, однако, если вы непреклонны в создании своего собственного, я бы предложил создать шаблон синтаксического анализа для каждого TLD (всех 1,5 тыс. +). Или сделайте, как я, и воспользуйтесь бесплатной размещенной службой. - person sousdev; 18.09.2016

Это невозможно сделать без реализации синтаксического анализатора для каждой базы данных whois, с которой вы сталкиваетесь.

Whois не имеет стандартизированного формата, большинство реестров даже не имеют всей этой информации, доступной через whois, но вместо этого предоставляют вам дескриптор, который вы можете проверить через HTTP при заполнении капчи:

$ whois google.no
% Kopibeskyttet, se http://www.norid.no/domenenavnbaser/whois/kopirett.html
% Rights restricted by copyright. See http://www.norid.no/domenenavnbaser/whois/kopirett.en.html

Domain Information

Domain Name................: google.no
Organization Handle........: GNA78O-NORID
Registrar Handle...........: REG466-NORID
Legal-c Handle.............: RH1355P-NORID
Tech-c Handle..............: JM722P-NORID
Zone-c Handle..............: JM722P-NORID
...
person Martin    schedule 09.03.2010