Java-获取本机局域网的外网IP
Java 获取本机局域网的外网IP
package com.agrilink.adslIp; import java.net.Authenticator; import java.net.PasswordAuthentication; public class RouterPassAuth extends Authenticator { @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(adslIp.ROUTE_USER, adslIp.ROUTE_PWD.toCharArray()); } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Authenticator; import java.net.URL; import java.util.concurrent.TimeUnit; public class routeIp { private static final routeIp ip = new routeIp(); public void routeIp(){ } public static routeIp getInstance() { Authenticator.setDefault(new RouterPassAuth()); return ip; } private static String getWanPacket() throws IOException { URL url = new URL(“http://192.168.1.1:80/userRpm/StatusRpm.htm?Connect=连 接&wan=1”); InputStream ins = null; try { ins = url.openConnection().getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(ins)); String str; StringBuffer wanPacket = new StringBuffer(); while ((str = reader.readLine()) != null) { wanPacket.append(str); } return wanPacket.toString(); }finally{ if(ins!=null){ ins.close(); } } } public static void main(String[] args) { routeIp ip = routeIp.getInstance(); try { System.out.println(ip.getWanPacket()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }