在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\\="\&quot;fz24\&quot;">(.*?)\\&lt;\\/dd&gt;");
	Matcher m = p.matcher(inputLine.toString());
	if (m.find()) {
		String ipstr = m.group(1);
		ip = ipstr;
	}
	return ip;
}

調用該方法,返回字符串:

該方法粘貼過去直接用,返回的就是本機公網IP

其原理很簡單,向chinaz網站發送請求,chinaz網站會把請求的公網IP返回過來,然后我們經過一些簡單的處理,就可以得到公網IP了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM