DELPHI IPV4判断合法

1:用正则表达式判断ip地址合法
uses
SysUtils, RegularExpressions;

function IsValidIPv4(const IP: string): Boolean;
var
Regex: TRegEx;
begin
// IPv4 地址的正则表达式
Regex := TRegEx.Create('^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$');
Result := Regex.IsMatch(IP);
end;

procedure Test;
var
IP: string;
begin
IP := '192.168.1.1';
if IsValidIPv4(IP) then
WriteLn(IP + ' 是一个合法的 IPv4 地址')
else
WriteLn(IP + ' 不是一个合法的 IPv4 地址');
end;

begin
Test;
end.
代码解释
正则表达式 ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
用于匹配地址。它确保每个段(用点分隔)在到的范围内。函数:接受一个字符串参数,检查该字符串是否符合地址的格式。返回一个布尔值,指示该地址是否合法。过程:测试函数,打印结果。地址合法性如果您还需要检查地址的合法性,可以使用类似的方法,但正则表达式会更复杂。以下是一个简单的示例:地址的正则表达式😃😃😐😃😃😃😃😃😦😦😃😃😦
');
Result := Regex.IsMatch(IP);
end;
通过这个方法,您可以轻松判断给定的 IP 地址是否合法。

2:判断ip地址合法不用正则表达式
uses
SysUtils;

function IsValidIPv4(const IP: string): Boolean;
var
Segments: TArray;
Segment: string;
I, Value: Integer;
begin
Result := False;

// 按照 '.' 分割 IP 地址
Segments := IP.Split(['.']);

// 检查是否有 4 个段
if Length(Segments) <> 4 then
Exit;

// 验证每个段
for I := 0 to 3 do
begin
Segment := Segments[I];

// 检查段是否为空或非数字
if (Segment = '') or not TryStrToInt(Segment, Value) then
  Exit;

// 检查值是否在 0 到 255 之间
if (Value < 0) or (Value > 255) then
  Exit;
end;

// 如果所有检查通过,则认为是合法的 IP 地址
Result := True;
end;

procedure Test;
var
IP: string;
begin
IP := '192.168.1.1';
if IsValidIPv4(IP) then
WriteLn(IP + ' 是一个合法的 IPv4 地址')
else
WriteLn(IP + ' 不是一个合法的 IPv4 地址');
end;

begin
Test;
end.
代码解释
分割 IP 地址:

使用 Split 方法将输入的 IP 地址按照 . 分割成多个段。
检查段数量:

确保分割后的段数量为 4,否则返回 False。
验证每个段:

遍历每个段,检查其是否为空,并且是否可以转换为整数。
检查每个段的值是否在 0 到 255 的范围内。
返回结果:

如果所有段都通过了验证,则返回 True,否则返回 False。
使用示例
在 Test 过程中的示例中,您可以更改 IP 变量的值来测试其他 IP 地址的合法性。此代码将输出相应的结果,指示给定的 IP 地址是否有效。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ljklxlj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值