加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

匹配IP地址的正则表达式实例

发布时间:2020-12-14 01:35:14 所属栏目:百科 来源:网络整理
导读:package com.accel.dashboard.tool;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.HashSet;import java.util.Set;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Created by jason.zhan on 9/10
package com.accel.dashboard.tool;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by jason.zhan on 9/10/2014.
 */
public class IPScanner {

    private IPScanner() {}

    private static class IPScannerFactory {
        private static IPScanner instance = new IPScanner();
    }

    public static IPScanner getIPScanner() {
        return IPScannerFactory.instance;
    }

    public Object readResolve() {
        return getIPScanner();
    }

    /**
     * @return All the Server IP.
     *
     * @param cmd Your command.
     *
     */
    public Set<String> getServerIP(String cmd) {
        BufferedReader bufferedReader = null;
        Set<String> iPSet = new HashSet<String>();
        String command = "cmd.exe /c arp -a";
        if (cmd != null) {
            command = cmd;
        }
        try {
            Process process = Runtime.getRuntime().exec(command);
            bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String regex = "(?:(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))).){3}(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d)))";
            String line = null;
            StringBuilder stringBuilder = new StringBuilder();
            Matcher matcher = null;
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line);
            }
            matcher = Pattern.compile(regex).matcher(stringBuilder);
            while (matcher.find()) {
                iPSet.add(matcher.group(0));
            }
            //System.out.println(stringBuilder);
        } catch (Exception e1) {
            e1.printStackTrace();
            iPSet = null;
        } finally {
            if (bufferedReader != null) {
                try {
                    bufferedReader.close();
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
        }
        return iPSet;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读