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)}");
        }
    }
}
相关文章
|
2天前
|
C#
C# 字符串操作:常用方法汇总(含案例)
C# 提供丰富的字符串操作方法,如拼接、截取、替换和判断等。本文通过工具类案例演示如何高效处理字符串,提升开发效率与代码可读性。
|
2天前
|
C#
C# 继承:复用父类功能的核心技巧
C# 中通过“:”实现继承,子类可复用并重写父类的虚方法。Student 继承 Person,重写 Introduce 方法,既调用父类逻辑,又扩展个性行为,体现多态特性。
|
2天前
|
算法 C#
C# 实现简单的策略模式
策略模式定义算法族,封装可互换的算法,使算法变化独立于客户端。通过接口统一调用,支持动态切换排序方式,如冒泡排序与快速排序,提升系统灵活性与可扩展性。
|
2天前
|
存储 C#
C# 委托(Delegate):实现方法回调
委托是方法的类型,可引用方法并实现回调机制,常用于异步通知与事件触发。通过定义委托,可将方法作为参数传递,并在任务完成后调用多个回调函数,支持灵活的程序解耦与扩展。
|
2天前
|
C#
C# 实现简单的计算器(控制台版)
本案例实现一个控制台计算器,支持加减乘除四则运算,具备输入验证功能,可捕获无效输入与除零异常,确保程序稳定运行。
|
2天前
|
C# 图形学 Windows
C# 制作 Windows Forms 图形验证码(带干扰线)
WinForms图形验证码利用Graphics绘制字符、干扰线与噪点,支持刷新及随机颜色、旋转,增强防破解能力,提升安全性。
|
2天前
|
C#
C# 异常处理:try-catch-finally 避免程序崩溃
异常处理用于捕获运行时错误(如空引用、文件不存在),确保程序稳定。通过 `try` 包裹可能出错的代码,`catch` 捕获并处理异常,`finally` 确保资源释放等操作始终执行,提升代码健壮性。
|
2天前
|
C#
C# 文件操作:读取与写入文本文件
`File`类提供文件操作静态方法,适合快速读写;大文件推荐使用`StreamReader/StreamWriter`以降低内存占用。示例展示了文本文件的写入、追加与读取操作,支持自动创建目录,建议处理路径时注意权限并优先使用相对路径。
|
2天前
|
C#
C# 枚举(Enum):规范常量定义
枚举用于定义命名常量,提升代码可读性与维护性。示例中定义订单状态枚举,演示赋值、转换、解析及遍历操作,避免使用魔法数字,使逻辑更清晰易懂。
|
2天前
|
JSON API C#
C# 实现简单的 HTTP 请求工具(GET/POST)
HTTP请求工具用于调用第三方API,支持GET和POST方法,实现数据获取与提交。示例代码展示通过HttpClient发送异步POST请求,处理响应并解析JSON结果,适用于高效集成外部服务。

热门文章

最新文章