在网络编程中,有时需要验证用户输入的IP地址是否合法。在本文中,将使用C#编写一个简单的函数来检查IP地址的格式是否合法,以确保它们与一定的标准相匹配。
首先,需要使用一个正则表达式来匹配有效的IP地址。以下是常见的IP地址格式:
- IPv4地址,例如192.168.1.1
- IPv6地址,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334
为了匹配IPv4和IPv6地址,使用以下正则表达式:
public static bool IsValidIPAddress(string ipAddress)
{
if (string.IsNullOrWhiteSpace(ipAddress))
{
return false;
}
// IPv4 and IPv6 expressions
string ipv4Pattern = @"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$";
string ipv6Pattern = @"^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$";
Regex ipv4Regex = new Regex(ipv4Pattern);
Regex ipv6Regex = new Regex(ipv6Pattern);
return ipv4Regex.IsMatch(ipAddress) || ipv6Regex.IsMatch(ipAddress);
}
在上面的代码中,使用了两个正则表达式,一个用于匹配IPv4地址,另一个用于匹配IPv6地址。这两个正则表达式可以使用Regex类创建,可以在需要时传入IP地址以确认其合法性。
接下来,可以在已有的C#代码中使用IsValidIPAddress函数,以验证用户输入的IP地址是否合法。以下是示例代码:
string ipAddress = "127.0.0.1";
if (IsValidIPAddress(ipAddress))
{
// 用户输入的IP地址合法,可以继续处理
}
else
{
// 用户输入的IP地址不合法,提示用户重新输入
}
以下为示例代码效果展示: