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;
}