使用java获取本机外网IP地址及原理
原理:
-
随便百度一个<外网ip地址查询>就可以查询出自己的IP地址
-
其实就是将页面上内容下载到本地即可。
-
例如:
-
点开后可以看到
-
就是将这个网页的内容下载到本地解析就可以了。
代码
public class IpGet {
public static void main(String[] args) {
//结果
String ip = "";
//访问地址
String chinaz = "http://ip.chinaz.com";
URL url = null;
String read;
StringBuilder sb = new StringBuilder();
BufferedReader reader = null ;
try {
url = new URL(chinaz );
//创建链接
URLConnection urlConnection1 = url.openConnection();
//获取网页流对象
InputStream inputStream = urlConnection1.getInputStream();
//读取返回的内容
reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
//拼接到字符串中
while((read=reader.readLine())!=null){
sb.append(read+"\r\n");
}
//打印出来看看效果你就明白了
System.out.println(sb);
} catch (Exception e) {
e.printStackTrace();
}finally {
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//解析html得到ip地址
Pattern p = Pattern.compile("\\<dd class\\=\"fz24\">(.*?)\\<\\/dd>");
Matcher m = p.matcher(sb.toString());
if(m.find()){
String ipstr = m.group(1);
ip = ipstr;
}
//输出最终的ip地址
System.out.println(ip);
}
}
- 第一次打印的效果,看到这里你应该懂了。