List of usage examples for com.google.common.net InetAddresses isMappedIPv4Address
public static boolean isMappedIPv4Address(String ipString)
From source file:org.n52.shetland.ogc.ows.service.OwsServiceRequestContext.java
private static IPAddress getIPAddress(HttpServletRequest req) { InetAddress addr = null;//www . ja v a 2 s . co m String addrAsString = req.getRemoteAddr(); try { addr = InetAddresses.forString(addrAsString); } catch (IllegalArgumentException e) { LOG.warn("Ignoring invalid IP address: " + req.getRemoteAddr(), e); } if (addr instanceof Inet4Address) { Inet4Address inet4Address = (Inet4Address) addr; return new IPAddress(inet4Address); } else if (addr instanceof Inet6Address) { Inet6Address inet6Address = (Inet6Address) addr; // embedded form if (InetAddresses.isCompatIPv4Address(inet6Address)) { return new IPAddress(InetAddresses.getCompatIPv4Address(inet6Address)); // mapped form } else if (InetAddresses.isMappedIPv4Address(addrAsString)) { try { return new IPAddress(InetAddress.getByName(addrAsString).getAddress()); } catch (UnknownHostException e) { LOG.warn("Ignoring invalid IPv4-mapped-IPv6 address: " + req.getRemoteAddr(), e); } // 6to4 addresses } else if (InetAddresses.is6to4Address(inet6Address)) { return new IPAddress(InetAddresses.get6to4IPv4Address(inet6Address)); } else if (InetAddresses.toAddrString(addr).equals("::1")) { // ::1 is not handled by InetAddresses.isCompatIPv4Address() return new IPAddress("127.0.0.1"); } else { LOG.warn("Ignoring not v4 compatible IP address: {}", req.getRemoteAddr()); } } else { LOG.warn("Ignoring unknown InetAddress: {}", addr); } return null; }