java 获取公网(外网IP)很实用!

来源:互联网 发布:西雅图华盛顿大学 知乎 编辑:程序博客网 时间:2024/05/21 14:06
package com.lovo.util;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;public class PublicInterIp {/** * @param args * @throws Exception */public String getPublicIp() {try {String path = "http://iframe.ip138.com/ic.asp";// 要获得html页面内容的地址URL url = new URL(path);// 创建url对象HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 打开连接conn.setRequestProperty("contentType", "GBK"); // 设置url中文参数编码conn.setConnectTimeout(5 * 1000);// 请求的时间conn.setRequestMethod("GET");// 请求方式InputStream inStream = conn.getInputStream();// readLesoSysXML(inStream);BufferedReader in = new BufferedReader(new InputStreamReader(inStream, "GBK"));StringBuffer buffer = new StringBuffer();String line = "";// 读取获取到内容的最后一行,写入while ((line = in.readLine()) != null) {buffer.append(line);}String str = buffer.toString();String ipString1 = str.substring(str.indexOf("[")); // 获取你的IP是中间的[182.149.82.50]内容String ipsString2 = ipString1.substring(ipString1.indexOf("[") + 1,ipString1.lastIndexOf("]"));//获取当前IP地址所在地址/*String ipsString3=ipString1.substring(ipString1.indexOf(": "),ipString1.lastIndexOf("</center>"));System.err.println(ipsString3);*/// 返回公网IP值return ipsString2;} catch (Exception e) {System.out.println("获取公网IP连接超时");return "连接超时";}}public static void main(String[] args)  { PublicInterIp interIp=new PublicInterIp();System.err.println(interIp.getPublicIp());}}

0 0