Я хочу создать 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 дают различные ответы, и это - очень трудная задача проанализировать данные ответы. Как это может быть сделано?
Вот ссылка на сообщение в блоге с некоторым кодом C #, который может помочь:
http://blog.flipbit.co.uk/2009/06/querying-whois-server-data-with-c. html
Вы, вероятно, могли бы настроить код синтаксического анализа, когда столкнетесь с ситуациями, когда вы не получаете нужные данные, но я не думаю, что есть одно решение, подходящее для всех.
Это невозможно сделать без реализации парсера для каждой базы данных 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
...