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文件中编写代码:
引入必要的单元,例如RegularExpressions
和SysUtils
。
在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中获取顶级域名,你可以根据自己的需求和实际情况选择合适的方法。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1659274.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复