java 获取内外网IP demo
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author 散场前的温柔
*/
public class IpTest {
public static void main(String[] args) throws Exception {
String webIp = getWebIP();
String loaclIp = getLocalIP();
System.out.println("本机的外网IP是:" + webIp);
System.out.println("本机的内网IP是:" + loaclIp);
}
private static String getWebIP() {
String ip = "";
String chinaIp = "http://ip.chinaz.com";
StringBuilder inputLine = new StringBuilder();
String read;
URL url;
HttpURLConnection urlConnection;
BufferedReader in = null;
try {
url = new URL(chinaIp);
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();
}
}
}
final 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;
}
public static String getLocalIP() throws Exception{
InetAddress addr = (InetAddress) InetAddress.getLocalHost();
//获取本机IP
String localIP = addr.getHostAddress().toString();
return localIP;
}
}
结果: