You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C#的String.Split方法拆分IP地址并存储到变量做有效性校验

C# 基于String.Split实现IP地址拆分与合法性校验

现有代码问题说明

你当前代码中Split方法传入的count=1参数代表最多只返回1个拆分结果,会导致IP字符串完全不会被切分,无法得到4段IP值,不符合需求。


实现步骤

1. 正确使用Split方法拆分IP地址

调整Split参数,拆分出IP的所有段:

string ip = "198.170.60.90";
// 定义分隔符为英文句号
char[] separator = { '.' };
// 拆分时自动移除空段,不限制拆分数量
string[] ipSegments = ip.Split(separator, StringSplitOptions.RemoveEmptyEntries);

2. 拆分结果存入独立变量

先判断拆分后的段数是否符合IPv4的4段要求,再按索引赋值给独立变量:

// 段数不合法直接判定IP无效
if(ipSegments.Length != 4)
{
    Console.WriteLine("IP格式错误:段数不符合IPv4要求");
    return;
}
// 存入独立变量
string seg1 = ipSegments[0];
string seg2 = ipSegments[1];
string seg3 = ipSegments[2];
string seg4 = ipSegments[3];

3. IP段合法性校验

每段IP需要符合以下规则:

  • 段长度必须在1~3之间
  • 段内所有字符只能是0-9的数字
  • 若段长度大于1,不能以0开头(避免出现192.168.01.1这类不规范写法)
  • 转换为整数后数值范围必须在0~255之间

完整校验示例代码:

bool IsIPv4Valid(string ip)
{
    char[] separator = { '.' };
    string[] ipSegments = ip.Split(separator, StringSplitOptions.RemoveEmptyEntries);
    // 校验段数
    if (ipSegments.Length != 4) return false;
    
    foreach (string seg in ipSegments)
    {
        // 校验长度
        if (seg.Length is 0 or > 3) return false;
        // 校验全为数字
        foreach (char c in seg)
        {
            if (!char.IsDigit(c)) return false;
        }
        // 校验前导零
        if (seg.Length > 1 && seg.StartsWith('0')) return false;
        // 校验数值范围
        int segValue = int.Parse(seg);
        if (segValue is < 0 or > 255) return false;
    }
    return true;
}

补充说明

如果只是实际项目中需要校验IP有效性,不需要学习Split用法,也可以直接使用.NET内置的IPAddress.TryParse方法完成校验。

内容的提问来源于stack exchange,提问作者Razvan Razvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:09:02