美文网首页
在JAVA代码中,获取本机的公网IP

在JAVA代码中,获取本机的公网IP

作者: 二狗他叔 | 来源:发表于2019-08-14 09:41 被阅读0次

    在平时,如果想获取本机的公网IP,我们都知道去百度查询一下,它就会出来。

    但是在代码中,如果获取到本机的公网IP呢?

    其实方法千千万,我在这里介绍一种比较简单、不需要其它依赖的方法,代码如下

    public static String getV4IP() {
        String ip = "";
        String chinaz = "ht" + "tp" + ":/" + "/i" + "p.ch" + "in" + "az." + "co" + "m";
        StringBuilder inputLine = new StringBuilder();
        String read = "";
        URL url = null;
        HttpURLConnection urlConnection = null;
        BufferedReader in = null;
        try {
            url = new URL(chinaz);
            urlConnection = (HttpURLConnection) url.openConnection();
            in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
            while ((read = in.readLine()) != null) {
                inputLine.append(read + "\r\n");
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        Pattern p = Pattern.compile("\\<dd class\\=\"fz24\">(.*?)\\<\\/dd>");
        Matcher m = p.matcher(inputLine.toString());
        if (m.find()) {
            String ipstr = m.group(1);
            ip = ipstr;
        }
        return ip;
    }
    

    调用该方法,返回字符串:

    image.png
    该方法粘贴过去直接用,返回的就是本机公网IP

    其原理很简单,向chinaz网站发送请求,chinaz网站会把请求的公网IP返回过来,然后我们经过一些简单的处理,就可以得到公网IP了。

    相关文章

      网友评论

          本文标题:在JAVA代码中,获取本机的公网IP

          本文链接:https://www.haomeiwen.com/subject/udmwjctx.html