1. 程式人生 > >Java獲取本機外網ip地址的方法

Java獲取本機外網ip地址的方法

Java獲取外網IP地址的方法

獲取本地IP地址的方法

public static String getLocalAddress(){
	String ip = "";
	try {
		ip = InetAddress.getLocalHost().getHostAddress();
	} catch (UnknownHostException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return ip;
}

獲取外網本機的IP地址的方法

一種可行的獲取方法,是通過http請求從網站中取出ip欄位。例如:

http://ip.chinaz.com/

通過這個網址,加上簡單的正則表示式,即可得到。

public static String getV4IP(){
	String ip = "";
	String chinaz = "http://ip.chinaz.com";
	
	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"); } //System.out.println(inputLine.toString()); } catch (MalformedURLException e) { e.printStackTrace(); } catch
(IOException e) { e.printStackTrace(); }finally{ if(in!=null){ try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block 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; //System.out.println(ipstr); } return ip;

}

參考部落格: http://blog.csdn.net/dugucanjian/article/details/47378063