欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java web獲取客戶端外網和內網ip

阮建安1年前8瀏覽0評論

在Java Web開發中,有時候需要獲取客戶端的IP地址,包括外網和內網IP。下面就介紹一下如何通過Java代碼獲取客戶端的IP地址。

獲取外網IP

public static String getInternetIp() throws Exception {
URL url = new URL("http://checkip.amazonaws.com");
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(url.openStream()));
String ipAddress = in.readLine().trim();
return ipAddress;
} finally {
if (in != null) {
in.close();
}
}
}

利用訪問www.ip.cn等網站獲取ip地址在國內網絡有不穩定的問題,但是在AWS亞馬遜云上則不會有這個問題。

獲取內網IP

public static String getIntranetIp(HttpServletRequest request) {
String ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
}
//如果是多級代理,那么取第一個IP為客戶端IP  
if (ipAddress != null && ipAddress.contains(",")) {
ipAddress = ipAddress.substring(0, ipAddress.indexOf(",")).trim();
}
return ipAddress;
}

由于內外網地址分屬不同的網絡地址空間,所以需要使用不同的方式去獲取。這里介紹的是在Tomcat下獲取內網IP的方法,具體實現細節可以參考上面的代碼。