参考文章:C# 判断ip地址是否正确
楼主提供的方法是通过IPAddress.TryParse()
来判断字符串是否为有效地址,如果能解析IP地址,则为true
。这个方法也蛮巧妙的,判断IP地址我第一反应是根据'.'
分割字符串然后每个字符挨个判断,手动写格式判断啥的,效率低还麻烦,容易出错,看到楼主那个还挺好玩的,就试了一下。发现了一些问题:
IPAddress.TryParse()方法
string ipStr = this.txt_IPAddress.Text;
System.Net.IPAddress ip;
if (System.Net.IPAddress.TryParse(ipStr,out ip))
{
MessageBox.Show("IP地址合法");
}
else
{
MessageBox.Show("IP地址不合法");
}
楼主评论区中有人提出可以用正则表达式来判断,既能判断格式也能判断数值,一举两得。
IsMatch()方法
System.Text.RegularExpressions.Regex rx = new System.Text.RegularExpressions.Regex(@"((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))");
if (rx.IsMatch(ipStr) == false)
{
MessageBox.Show("IP地址不合法");
return;
}
else
{
MessageBox.Show("IP地址合法");
}