当前位置:首页 > 行业动态 > 正文

delphi 获取顶级域名

在 Delphi 中,你可以使用 TIdURI 类来解析 URL 并获取顶级域名。以下是一个示例代码:“ delphi,uses, IdURI;function GetTopLevelDomain(const URL: string): string;,var, URI: TIdURI;,begin, URI := TIdURI.Create(nil);, try, URI.URL := URL;, Result := URI.Host;, finally, URI.Free;, end;,end;,` 调用 GetTopLevelDomain(‘http://www.example.com’) 将返回 www.example.com`。

在Delphi中获取顶级域名,可以通过以下几种方法实现。

方法一:使用IdDNSResolver组件(需要安装相关库)

1、安装IdDNSResolver库:首先确保你的Delphi项目中已经安装了IdDNSResolver库,这是一个用于解析域名的第三方库,如果没有安装,可以通过GetIt Package Manager或其他方式进行安装。

2、添加IdDNSResolver单元:在你的Delphi项目中添加IdDNSResolver的相关单元,以便能够使用其中的类和方法。

3、编写代码获取顶级域名

创建一个新的VCL Forms Application项目。

在Form的Unit文件中,引入必要的单元,例如IdDNSResolver

在Form的TForm1.Button1Click事件中编写以下代码:

uses
  IdDNSResolver, SysUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
  DNSResolver: TIdDNSResolver;
  DomainName: string;
  TopLevelDomain: string;
begin
  // 创建一个IdDNSResolver实例
  DNSResolver := TIdDNSResolver.Create(nil);
  try
    // 设置要解析的域名
    DomainName := 'www.example.com';
    // 解析域名
    DNSResolver.Host := DomainName;
    DNSResolver.Resolve;
    // 获取顶级域名
    TopLevelDomain := DNSResolver.Answers[0].Hostname;
    ShowMessage('顶级域名是: ' + TopLevelDomain);
  finally
    // 释放IdDNSResolver实例
    DNSResolver.Free;
  end;
end;

4、运行程序:按下F9键运行程序,点击按钮后,会弹出一个消息框显示顶级域名。

方法二:使用正则表达式解析域名字符串

1、创建一个新的VCL Forms Application项目

2、在Form的Unit文件中编写代码

引入必要的单元,例如RegularExpressionsSysUtils

在Form的TForm1.Button1Click事件中编写以下代码:

uses
  System.RegularExpressions, SysUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
  DomainName: string;
  Matches: TMatchCollection;
  RegEx: TRegEx;
  TopLevelDomain: string;
begin
  // 设置要解析的域名
  DomainName := 'www.example.com';
  // 创建一个正则表达式对象,用于匹配顶级域名
  RegEx := TRegEx.Create('.[a-zA-Z]{2,}$');
  // 执行匹配操作
  Matches := RegEx.Matches(DomainName);
  if Matches.Count > 0 then
  begin
    // 获取顶级域名
    TopLevelDomain := Matches[0].Value;
    ShowMessage('顶级域名是: ' + TopLevelDomain);
  end
  else
  begin
    ShowMessage('无法解析顶级域名');
  end;
end;

3、运行程序:按下F9键运行程序,点击按钮后,会弹出一个消息框显示顶级域名。

方法三:使用String Functions手动解析域名字符串

1、创建一个新的VCL Forms Application项目

2、在Form的Unit文件中编写代码

在Form的TForm1.Button1Click事件中编写以下代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  DomainName: string;
  PosDot: Integer;
  TopLevelDomain: string;
begin
  // 设置要解析的域名
  DomainName := 'www.example.com';
  // 找到最后一个点的位置
  PosDot := LastDelimiter('.', DomainName);
  if PosDot > 0 then
  begin
    // 获取顶级域名
    TopLevelDomain := Copy(DomainName, PosDot + 1, MaxInt);
    ShowMessage('顶级域名是: ' + TopLevelDomain);
  end
  else
  begin
    ShowMessage('无法解析顶级域名');
  end;
end;

3、运行程序:按下F9键运行程序,点击按钮后,会弹出一个消息框显示顶级域名。

三种方法都可以在Delphi中获取顶级域名,你可以根据自己的需求和实际情况选择合适的方法。