android 判断ip地址合法

释放双眼,带上耳机,听听看~!

昨天,我在网上找了一下判断文本框内的字符串是否是合法的ip地址,自己想到了正则表达式,可是自己对这个却不熟,所以在网上查找了一些资料,最后终于是做出来了。

具体的代码很简单,

public boolean isIP(String addr)
        {
            if(addr.length() < 7 || addr.length() > 15 || "".equals(addr))
            {
                return false;
            }
            /**
             * 判断IP格式和范围
             */
            String rexp = "([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}";

            Pattern pat = Pattern.compile(rexp);

            Matcher mat = pat.matcher(addr);

            boolean ipAddress = mat.find();

            //============对之前的ip判断的bug在进行判断
            if (ipAddress==true){
                String ips[] = addr.split("\.");

                if(ips.length==4){
                        try{
                            for(String ip : ips){
                                if(Integer.parseInt(ip)<0||Integer.parseInt(ip)>255){
                                    return false;
                                }

                            }
                        }catch (Exception e){
                            return false;
                        }

                    return true;
                }else{
                    return false;
                }
            }

            return ipAddress;
        }

}

 

这个代码先用正则表达式判断是否合法,其实就是判断是否右3个点分开字符串,不过对字符串没有判断是否为数字,所以在后面我又找了另一个判断ip的代码,如果前面判断的是合法,则在把字符串用点分开,然后强转成数字判断是否在0到255之间,如果不满足或者强转报错,就返回字符串不是ip的false变量。

 

这样就完成了判断ip的合法性。

 

就这么简单。

 

 

 

 

 

人已赞赏
Android文章

Android开发深入浅出RxJava四-在Android中使用响应式编程

2020-3-12 11:28:56

Android文章

Android EditText获取焦点和失去焦点监听事件

2020-3-12 12:12:06

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索