获取对外的IP地址
通过http请求从网站中取出ip字段。例如:http://ip.chinaz.com/,通过这个网址,加上简单的正则表达式,即可得到。
/**
* @Description: Java获取本机在外网的IP地址
* 调用http://www.ip138.com/ip2city.asp的接口,获取计算机在外网对应的IP地址
* @date: 2017年6月25日 下午5:12:27
* @修改备注:
*/
public static String getWebIp(String strUrl) {
strUrl = "http://www.ip138.com/ip2city.asp";
try {
URL url = new URL(strUrl);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String s = "";
StringBuffer sb = new StringBuffer("");
String webContent = "";
while ((s = br.readLine()) != null) {
sb.append(s + "\r\n");
}
br.close();
webContent = sb.toString();
int start = webContent.indexOf("[")+1;
int end = webContent.indexOf("]");
webContent = webContent.substring(start,end);
System.out.println(webContent);
return webContent;
} catch (Exception e) {
e.printStackTrace();
return "error open url:" + strUrl;
}
}
/**
* @Description: Java获取本机在外网的IP地址
* 调用http://ip.chinaz.com的接口,获取计算机在外网对应的IP地址
* @date: 2017年6月25日 下午5:12:27
* @修改备注:
*/
public static String getIPV4Address(){
String ipv4 = "";
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()); //输出http://ip.chinaz.com网页详细信息
} 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);
ipv4 = ipstr;
System.out.println("ipstr::"+ipstr);
System.out.println("ipv4::"+ipv4);
}
return ipv4;
}
获取计算机在局域网的IP地址:
/**
* @Description: 获取本机在局域网中的IP地址
* @date: 2017年6月6日 下午3:18:56
* @修改备注:
*/
public static void get_LAN_IP(){
try{
System.out.println("本机的IP = " + InetAddress.getLocalHost().toString());
} catch (UnknownHostException e){
e.printStackTrace();
}
}