參考文章:C# 判斷ip地址是否正確 樓主提供的方法是通過IPAddress.TryParse()來判斷字元串是否為有效地址,如果能解析IP地址,則為true。這個方法也蠻巧妙的,判斷IP地址我第一反應是根據'.'分割字元串然後每個字元挨個判斷,手動寫格式判斷啥的,效率低還麻煩,容易出錯,看到樓主那 ...
參考文章: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地址合法");
}