В этой статье хотел бы поговорить как можно получить подробную информацию о домене. В сети Интернет полно таких сервисов, которые предоставляют эту информацию, конечно можно составить запрос, отправить его на сервер, получить ответ, обработать его (отпарсить, если потребуется) и вывести готовый результат, но зачем, если имеется в Delphi отличный компонент, который поможет это сделать, конечно не совсем все в нем удобно. Для того, чтобы использовать стабильно данный компонент необходимо знать адрес сервера проверки домена, а также его порт. По умолчанию адрес сервера следующий — whois.internic.net, а порт 43. Тут также стоит отметить, что данный сервер может получать информацию о доменах .com, .net, .org. Если Вам необходимо, например, получить информацию о российском домене, то придется искать сервер для российских доменов. Давайте разместим на нашей форме наконец-то данный компонент, который находится на вкладке Indy Clients, и у меня он последний в списке.

Итак у меня на форме следующие компоненты

  • TidWhois
  • TButton
  • TMemo

У компонента ТidWhois есть отличная функция Whois, которая получает на сервере всю информацию о домене. В TMemo у нас будет отображаться вся информация о домене на английском языке. Опять повторюсь, чтобы было все на русском и работали российские домены необходимо найти российский сервер. Также если получать информацию о домене и сразу ее отображать в TMemo вот так

Memo1.Text:=IdWhois1.WhoIs('twitter.com');

то получиться не сильно красиво, будут видны символы переноса каретки на новую строку, конечно это будет выглядеть не очень красиво, поэтому необходимо от них избавиться, можно написать свой парсинг, чтобы избавиться от символа #10 - перенос каретки на новую строку. Поэтому я написал вот такой вот примерно парсинг

procedure TForm1.Button2Click(Sender: TObject);
var
 i:integer;
 Texts,line:WideString;
begin
   Texts:=IdWhois1.WhoIs('twitter.com');
   i:=1;
   while (i<=length(Texts)) do
    begin
     if Texts[1]=#10 then
      Delete(Texts,1,1);
     if pos(#10,Texts)<>0 then
      begin
       line:=copy(Texts,1,pos(#10,Texts));
       Delete(line,pos(#10,line),length(line));
       Memo1.Lines.Add(line);
       Delete(Texts,1,pos(#10,Texts));
       i:=0;
      end;
     inc(i);
    end;
   Memo1.Lines.Add(Texts);
end;

Можете конечно свой парсинг написать, но это для тех кто не ищет легких путей, так как чтобы в TMemo получить информацию о домене в отформатированном варианте и с переносом всех строк на новые строки, можно написать вот такой вот код

procedure TForm1.Button3Click(Sender: TObject);
begin
   Memo1.Lines.Text:=IdWhois1.WhoIs('twitter.com');
end;

Вот так вот можно получить информацию о домене.

Хочу заметить, что если Вы надумали выпускать свою продукцию или предоставлять какие-то услуги Вам понадобиться, например, бланк качества, бланк сертификации и так далее, поэтому Вам необходимо бланк грамоты купить. Вы сможете найти любых размеров бланки, а также разных форматов и для различных нужд.

Скачать исходники статьи можно тут

Автор статьи - Andrey53

Метки: , , , ,




К записи “Получение информации о домене. Работа с idWhois” оставлено комментариев: 6.

  1. Как сложно. Проще заменить #10 на #13#10. Рекомендую отличный модуль AcedStrings из пакета AcedUtils – в нём есть быстрая функция замены G_ReplaceStr.

  2. А компонент этот из D6 у меня не заработал — возможно, из-за прокси. Надёжней парсить HTML страницы.

    Похоже, в YCCY используется тот же самый и из-за этого программа у меня на работе не работает. Аналогичную ошибку выдавала программа DCFinder, теперь её исправили.

  3. […] Andrey53 пишет: Delphi, idhttp, работа с сетью в delphi, adoquery< adoconnection, парсинг данныхЮ отправка смс на Delphi. […]

  4. Make Flyers, Brochures, Leaflets, Certificates, Door Hangers From Templates Using Easy Flyer Creator…

    http://devdelphi.ru/?p=318

  5. не пашет выдает непонятно что

  6. ПроходилМимо:

    Все пашет как надо, отличная статья.
    Автор если будет свободная минутка, намекни как отправить такой
    запрос через сокс.

Оставить комментарий

Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*