자바 ipAddress 얻기
<%!
// 모든 clientIp를 얻는다.
public Vector getClientIpList(HttpServletRequest req) {
Vector ipList = new Vector();
try {
Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
if (en == null) {
return null;
}
while (en.hasMoreElements()) {
NetworkInterface ni = en.nextElement();
if (ni == null || ni.isLoopback()) {
continue;
}
Enumeration<InetAddress> inetAddresses = ni.getInetAddresses();
if (inetAddresses == null) {
continue;
}
String oneIpAddress = null;
while (inetAddresses.hasMoreElements()) {
InetAddress ia = inetAddresses.nextElement();
if (ia == null) {
continue;
}
if (ia.getHostAddress() != null && ia.getHostAddress().indexOf(“.”) > -1) {
oneIpAddress = ia.getHostAddress();
if (oneIpAddress != null && oneIpAddress.length() > 0) {
ipList.add(oneIpAddress);
}
break;
}
}
}
} catch (Exception e) {
// 무시
}
// X-Forwarded-For 에서 얻기
String xffAddr = req.getHeader(“X-Forwarded-For”);
if (xffAddr != null && xffAddr.length() > 0 && !xffAddr.equals(“unknown”)) {
ipList.add(xffAddr);
}
// RemoteAddr 얻기
String remoteAddr = req.getRemoteAddr();
if (remoteAddr != null && remoteAddr.length() > 0) {
ipList.add(remoteAddr);
}
return ipList;
}
%>