Java IP + 端口 读取校验

代码如下: 

package com.shengsong.dingying;

import android.content.Context;

import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.shengsong.dingying.utils.LogUtils;
import com.vise.utils.convert.HexUtil;

import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import me.f1reking.serialportlib.utils.ByteUtil;

import static org.junit.Assert.*;

/**
 * Instrumented test, which will execute on an Android device.
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {

        String b = "192.168.30.98:65536";
//校验地址中是否存在 “ip:端口号”  (例如rtsp://admin:[email protected]:554/media/video1 )
        Pattern p = Pattern.compile("(\\d+\\.\\d+\\.\\d+\\.\\d+)\\:(\\d+)");
        Matcher m = p.matcher(b);
//将符合规则的提取出来
String ip=null;
String port= null;
        while(m.find()) {
            ip =  m.group(1);
            port = m.group(2);
            System.out.println("ip:"+m.group(1));
            System.out.println("isboolIp:"+isboolIp(ip));
            System.out.println("port:"+m.group(2));
            System.out.println("isboolPort:"+isboolPort(port));
        }
    }

    /** * 判断是否为合法IP * @return the ip */
    public static boolean isboolIp(String ipAddress) {
        String ip = "([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 pattern = Pattern.compile(ip);
        Matcher matcher = pattern.matcher(ipAddress);
        return matcher.matches();
    }

    public static boolean isboolPort(String port) {
        //端口号验证 1 ~ 65535
        String regex = "^([1-9]|[1-9]\\d{1,3}|[1-6][0-5][0-5][0-3][0-5])$";
        boolean flag = Pattern.matches(regex, port);
        return  flag;

    }



}

猜你喜欢

转载自blog.csdn.net/dreams_deng/article/details/110441785