參考
http://www.cnblogs.com/winnxm/archive/2008/12/15/1355111.html
優化後的表達式相容ipv4、ipv6

/// <summary>
/// 檢查輸入是否為ip位址字元串
/// </summary>
/// <param name="input">輸入字元串</param>
/// <returns></returns>
private static bool IsIPAddress(string input)
{
//原作者表達式@"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"
return Regex.IsMatch(input, @"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])((\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}|(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){5})$");
}


static void Main(string[] args)
bool bt = IsIPAddress("192.168.0.0");
bt = IsIPAddress("192.168.2.3.1.1");
bt = IsIPAddress("bd5.168.2.1");
bt = IsIPAddress("192.168.254.10");
bt = IsIPAddress("192.168.254.10.1.1.1.1");
bt = IsIPAddress("192.168.254.10.1.1.1");

本文轉自火地晉部落格園部落格,原文連結:http://www.cnblogs.com/yelaiju/archive/2012/06/30/2570863.html,如需轉載請自行聯系原作者