日期:2014-05-19  浏览次数:21417 次

C#使用正则表达式验证IP的问题
请大家给个验证是否是外网IP的的正则表达式

先判断是否是IP而且IP是类似192.168.XXX.XXX   返回false

其他的则返回true

谢谢哈

------解决方案--------------------
沙发?
------解决方案--------------------
请教楼主外网地址和内网地址的最大区别是什么
------解决方案--------------------
顶,jf
------解决方案--------------------
网上搜下`
这需要检查前缀为0,超过255情况的`
------解决方案--------------------
Regex reg = new Regex(@ "\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3} ");
string ip = "192.168.1.60 ";
if (reg.IsMatch(ip))
{
this.TextBox1.Text = "true ";
}
else
{
this.TextBox1.Text = "false ";
}

---------------------------------------------
EMail:bdbox@163.com 请给我一个与您交流的机会!
------解决方案--------------------
用代码
private static bool CheckIP(string ip)
{
System.Net.IPAddress ipAddress = System.Net.IPAddress.Parse(ip);
return ip.StartsWith( "192.168. ");
}

用正则怪麻烦的
------解决方案--------------------
^(\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])$
------解决方案--------------------
^(?:(?:25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)(?(?=\.?\d)\.)){4}$
------解决方案--------------------
正则的,try

private bool checkIP(string src)
{
if (Regex.IsMatch(src, @ "^(?!192\.168\.)((([1-9]?[0-9])|1[0-9]{2}|2([0-4][0-9]|5[0-5]))\.){3}(([1-9]?[0-9])|1[0-9]{2}|2([0-4][0-9]|5[0-5]))$ "))
return true;
return false;
}