IP校验 不能以0、127及224-255开头;是正确的IP
public class IpReg {
public static void main(String[] args) {
String s = "225.255.255.255";
boolean b = false;
//只要捕获到了异常,说明Ip是非法的,根据需要处理异常
try {
b = validateIP(s);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("验证结果为 :"+b);
}
public static boolean validateIP(String ip){
boolean b = false;
String[] ips = ip.split("\\.");
if(ips.length!=4){
throw new IllegalArgumentException("Illegal IP ["+ip+"]");
}
//对第一组进行验证
String[] ips1 = ips[0].split("");
if(ips1.length>4){
throw new IllegalArgumentException("Illegal IP ["+ip+"],String ["+ips[0]+"] given that length must less than 4");
}
int fip = 0;
try {
fip = Integer.parseInt(ips[0]);
} catch (NumberFormatException e) {
throw new IllegalArgumentException("Illegal IP ["+ip+"],param ["+ips[0]+"] given must be type of number!");
}
//如果没有抛出异常,则全部是数字,进行判断是否合法
if(fip<0 | fip == 0 | fip == 127){
throw new IllegalArgumentException("Illegal IP ["+ip+"], can not begin with "+fip);
}else{
b = true;
for(int i=224;i<=255;i++){
if(fip==i){
throw new IllegalArgumentException("Illegal IP ["+ip+"], can not begin with "+fip);
}
}
}
//对剩下的三组进行验证
boolean b2 = validate(ips[1]);
boolean b3 = validate(ips[2]);
boolean b4 = validate(ips[3]);
return b&b2&b3&b4;
}
private static boolean validate(String subip){
String[] ips = subip.split("");
if(ips.length>4){
throw new IllegalArgumentException("Illegal IP ["+subip+"],String ["+subip+"] given that length must less than 4");
}
Integer ip = null;
try {
ip = Integer.parseInt(subip);
} catch (NumberFormatException e) {
throw new IllegalArgumentException("Illegal IP ["+subip+"],param ["+ips[0]+"] given must be type of number!");
}
//如果没有抛出异常,则全部是数字,进行判断是否合法
if(ip<=255 && ip>-1){
return true;
}else{
throw new IllegalArgumentException("Illegal IP ["+subip+"],param ["+subip+"] given that must less than 256 and great than -1");
}
}
}
由于对正则表达式不熟悉,以及时间原因,所以上面这是比较笨的方法,解决问题还是得自己细心,用心,精心,好多问题真的是只要自己稍微花点时间用下心,用点时间,用点力就可以解决得了!下面是正则表达式:
String str_pattern = "^(((?!127)([1-9]|[1-9]\\d|1\\d\\d|2[0-1]\\d|22[0-3]))\\.)(([0-9]|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){2}([0-9]|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])$";
Pattern pattern = Pattern.compile(str_pattern);
String ip ="127.127.127.245";
Matcher m = pattern.matcher(ip);
boolean b = m.find();
if(b){
System.out.println(m.group());
}else{
System.out.println(b);
}
分享到:
相关推荐
基于这些规则,我们可以设计出一个用于验证IPv4地址格式的正则表达式。 ### 正则表达式的构成 给定文件中的正则表达式是: ``` "^(\\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])\\...
验证IP地址可以使用`FILTER_VALIDATE_IP`过滤器,你可以指定IPv4或IPv6的验证规则: ```php $ip = '192.168.1.1'; if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === false) { echo "IPv4地址格式不...
### Java中的正则表达式应用:验证邮箱、电话与IP 在Java开发中,正则表达式(Regular Expression)是一种非常强大的文本处理工具,可以用于模式匹配、搜索、替换等操作。本文将深入探讨如何利用Java中的正则表达式...
使用前,可能需要根据项目需求对类进行配置,例如设置错误消息模板或调整验证规则。 总之,"php验证类.zip"提供的资源是面向PHP开发者的实用工具,能够帮助他们有效地验证各种类型的数据,提升应用程序的安全性和...
2. **规则配置**:设置IP-Guard规则,使得市场部发往白名单内地址的邮件可自动解密。 3. **安全检查**:定期审查白名单的有效性及安全性,防止非授权人员获得敏感信息。 #### 五、多级审批流程的实现 为了进一步...
### IP地址的结构与规则 IPv4地址的格式可以总结为A.B.C.D,其中A、B、C、D分别代表四个十进制数字,每个数字的取值范围为0到255。为了确保IP地址的有效性和正确性,必须遵循以下规则: 1. **数值范围**:每个部分...
IP协议规定了网络中数据的封装格式以及寻址规则,使得不同网络能够相互通信。 二、IP地址与子网划分 IP地址是网络中每个设备的唯一标识,分为IPv4和IPv6两种版本。IPv4地址由32位二进制组成,通常表示为点分十进制...
判断IP地址的错误区域通常涉及到对IP地址的合法性验证。例如,IPv4地址的每个段都不能超过255,且不能有负数或小数;IPv6地址中不能有非16进制的字符,也不能有连续的冒号。如果IP地址不符合这些规则,就可认定其为...
邮件地址的验证更为复杂,通常涉及更多规则,比如用户名和域名部分的特殊字符限制,以及顶级域名的检查等。在实际应用中,可能需要使用正则表达式或者专门的邮件地址验证库来完成。 在VC++中,你可以使用标准库中的...
- 在实际应用中,IP地址和子网掩码的校验应遵循标准的IP地址结构规则,网关的范围可能需要根据实际情况进行设定。 - 为了避免XSS(跨站脚本攻击),应当对输入进行适当的编码处理,确保安全性。 通过本篇文章的内容...
通过阅读“IP地址详解.DOC”、“彻底明白IP地址——IP地址的介绍.DOC”等文档,我们可以更深入地了解IP地址的分类、分配规则以及特殊用途,例如私有IP地址和保留IP地址。而“IP网络安全与设备测试.DOC”则可能涵盖了...
总结来说,"android自定义IP控件"是一个便捷的工具,能帮助开发者创建一个遵循IP地址输入规则的UI组件,提供友好的用户体验。通过深入理解其内部实现,我们可以学习到如何在Android中创建和使用自定义控件,以及如何...
对于输入字段,通过JavaScript可以实时过滤不符合规则的输入: - **全角字符过滤**: - `onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,)"` - `onbeforepaste="clipboardData.setData(text,clipboardData....
这种格式的输入需要特殊的验证和格式化,以确保输入的有效性和一致性。 在Windows或Web应用程序中,开发者通常会使用自定义控件或者利用现有的库来实现IP地址输入框。这样的控件通常具有以下特点: 1. **格式验证*...
22. **IP地址验证**:检查输入的是否为有效的IPv4或IPv6地址。 23. **MAC地址验证**:验证物理网络地址的格式。 24. **信用卡号验证**:针对各种信用卡类型(如Visa, MasterCard)进行校验。 25. **车牌号验证**...
4. 分割和验证IP地址:每次用户键入后,你需要检查输入是否符合IP地址格式。可以使用`GetWindowText`获取当前文本,然后用`strtok`或`std::istringstream`分割字符串成四个部分,并验证每个部分是否在0到255之间。 ...
2. **IP地址验证** ```regex ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) ``` 该表达式用于验证标准IPv4地址。通过分组和条件表达式来匹配每一段数字的范围。 3. **电子邮件地址验证...
除了上述基本的验证外,还有一些特殊的验证场景需要注意: #### URL验证 URL的验证需要考虑到协议、域名、路径等信息: ```javascript /http[s]?:\/\/[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*([a-zA-Z0-9.,@?^=%&:~+#...