/// <summary>
/// 判断一个字符串是否一个全称点分(点式)十进制表示法的网络IPv4地址
/// </summary>
/// <remarks>
/// 返回代码:
/// 0 正确的IPv4地址
/// 1 第1个十进制无法识别
/// 2 第2个十进制无法识别
/// 3 第3个十进制无法识别
/// 4 第4个十进制无法识别
/// 5 有出现大于255或者小于0的十进制
/// 6 没有用3个“.(点)”分隔4组十进制,格式错误
/// </remarks>
public int isIPv4Address(string address)
{
//点分十进制,全称点分(点式)十进制表示法(英:Dotted decimal notation)
//是IPv4的IP地址标识方法,每一组数字都是十进制,组与组之间用“.(点)”分隔,因此称为“点分十进制”
//例如IP地址123.123.123.123
string[] decimalNotation = address.Split('.');
//如果不是“.(点)”分隔出4组字符串,则返回错误代码5
if (decimalNotation.Length != 4)
return 6;
else
{
//如果每组字符串里面有非法数字或者无法识别的数字,则根据第几个非法,返回错误代码1、2、3、4
//如果包含大于255或者小于0的非法数字,则返回错误代码5
int i = 1;
foreach(string s in decimalNotation)
{
int number;
bool success = int.TryParse(s, out number);
if (success == true)
{
// 转换成功,可以使用 number 变量
if (number > 255 || number < 0)
return 5;
i++;
}
else
{
// 转换失败,处理错误情况
return i;
}
}
return 0;
}
}