在JAVA代碼中,獲取本機的公網IP

在平時,如果想獲取本機的公網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網站發(fā)送請求,chinaz網站會把請求的公網IP返回過來,然后我們經過一些簡單的處理,就可以得到公網IP了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容