原理:使用HttpURLConnection解析百度 “ip” 查询结果,获取相应的自身外网ip地址内容
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Test {
public static void main(String[] args) throws Exception{
String urlPath = "http://www.baidu.com/s?wd=ip";
HttpURLConnection connection = (HttpURLConnection) new URL(urlPath).openConnection();
connection.setDoOutput(false);//关闭输入
connection.setDoInput(true);
connection.setUseCaches(false);//不使用缓存
connection.setConnectTimeout(1000);//连接超时
connection.setReadTimeout(3000);//读取超时
connection.setRequestProperty("Content-type", "text/html");
connection.setRequestMethod("GET");
connection.connect();
InputStream is = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String s = null;
while((s = reader.readLine()) != null){//遍历网页内容获取ip地址
if(s.contains("c-gap-right") && s.contains("IP")){
break;
}
}
reader.close();
is.close();
s = s.substring(s.indexOf(";") + 1, s.lastIndexOf("<"));//解析内容
System.out.println(s);
}
}
输出结果:
111.194.119.3