delphi 验证 字符串 是否是 ipv6  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 验证 字符串 是否是 ipv6


delphi 验证 字符串 是否是 ipv6

你可以使用正则表达式来验证字符串是否是有效的 IPv6 地址。以下是一个示例代码,展示如何在 Delphi 中使用正则表达式来验证IPv6 地址:

uses
  System.SysUtils, System.RegularExpressions;

function IsIPv6(const IPAddress: string): Boolean;
const
  IPv6Pattern = '^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|' +
                '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
                '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
                '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' +
                ':((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|' +
                '::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3,3}' +
                '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|([0-9a-fA-F]{1,4}:){1,4}:' +
                '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3,3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$';
begin
  Result := TRegEx.IsMatch(IPAddress, IPv6Pattern);
end;

procedure TestIPv6;
var
  TestIP: string;
begin
  TestIP := '2408:8226:b413:7c50:7ca:a4f6:7a03:344';
  if IsIPv6(TestIP) then
    Writeln(TestIP + ' 是有效的 IPv6 地址')
  else
    Writeln(TestIP + ' 不是有效的 IPv6 地址');
end;

begin
  try
    TestIPv6;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.067281007766724 seconds