package tw.com.providers;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.URL;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import tw.com.exceptions.CfnAssistException;
public class ProvidesCurrentIp {
private static final String GETIP_URL = "http://checkip.amazonaws.com";
private static final Logger logger = LoggerFactory.getLogger(ProvidesCurrentIp.class);
public InetAddress getCurrentIp() throws CfnAssistException {
try {
URL whatismyip = new URL(GETIP_URL);
BufferedReader in = null;
logger.debug("Attempt to fetch public IP from " + GETIP_URL);
in = new BufferedReader(new InputStreamReader(whatismyip.openStream()));
String ip = in.readLine();
logger.info("Got public IP as " + ip);
in.close();
return Inet4Address.getByName(ip);
} catch (IOException e) {
throw new CfnAssistException("Unable to get currnet public ip " + e.getMessage());
}
}
}