C# 实现 IP 地址有效性验证

简介: 通过正则表达式与IPAddress类双重验证IP地址,支持IPv4和IPv6格式校验,确保地址有效性。代码示例展示了高效、可靠的验证方法。

通过正则表达式和 IPAddress 类双重验证 IP 地址格式,支持 IPv4 和 IPv6。

using System.Net;
using System.Text.RegularExpressions;
public class IpValidator
{
    // IPv4 正则表达式
    private const string Ipv4Pattern = @"^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$";
    // 验证IP地址是否有效
    public static bool IsValidIp(string ip)
    {
        if (string.IsNullOrEmpty(ip)) return false;
        // 方式1:使用IPAddress类验证
        if (IPAddress.TryParse(ip, out _))
        {
            return true;
        }
        return false;
    }
    // 验证是否为有效的IPv4地址
    public static bool IsValidIpv4(string ip)
    {
        if (string.IsNullOrEmpty(ip)) return false;
        return Regex.IsMatch(ip, Ipv4Pattern, RegexOptions.Compiled);
    }
    // 调用示例
    public static void TestIpValidation()
    {
        string[] testIps = { "192.168.1.1", "256.0.0.1", "::1", "abc" };
        foreach (var ip in testIps)
        {
            Console.WriteLine($"IP: {ip} | 有效: {IsValidIp(ip)} | IPv4: {IsValidIpv4(ip)}");
        }
    }
}
相关文章
Web应用基本架构
Web应用基本架构。
489 6
|
运维 Linux
Linux NTP服务详解
Linux NTP服务详解
1033 1
|
SQL 存储 算法
ClickHouse性能优化 3
ClickHouse性能优化
1054 0
12 个非常适合做项目的开源后台管理系统
12 个非常适合做项目的开源后台管理系统
2508 0
|
容器 C# Docker
WPF与容器技术的碰撞:手把手教你Docker化WPF应用,实现跨环境一致性的开发与部署
【8月更文挑战第31天】容器技术简化了软件开发、测试和部署流程,尤其对Windows Presentation Foundation(WPF)应用程序而言,利用Docker能显著提升其可移植性和可维护性。本文通过具体示例代码,详细介绍了如何将WPF应用Docker化的过程,包括创建Dockerfile及构建和运行Docker镜像的步骤。借助容器技术,WPF应用能在任何支持Docker的环境下一致运行,极大地提升了开发效率和部署灵活性。
851 1
|
存储 网络协议 前端开发
这份RoCE、IB和TCP差异对比,没干10年网工,总结不出来。
这份RoCE、IB和TCP差异对比,没干10年网工,总结不出来。
1251 0
|
索引
【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍
【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍
1497 3
|
安全 Java Android开发
使用Unidbg进行安卓逆向实例讲解
使用Unidbg进行安卓逆向实例讲解
837 2
|
Prometheus Cloud Native 数据挖掘
搭建数据分析系统 Grafana 详细指南
搭建Grafana数据分析系统涉及安装Docker和拉取Grafana容器,然后配置Prometheus数据源,创建仪表盘和面板,以及设置告警规则。利用Grafana的可视化功能,可以将数据直观展示并进行监控。系统还支持导入导出仪表盘,便于协作和管理。
|
算法 安全 C#
C#版开源免费的Bouncy Castle密码库
C#版开源免费的Bouncy Castle密码库
261 1