Example usage for com.google.common.net InetAddresses getCompatIPv4Address

List of usage examples for com.google.common.net InetAddresses getCompatIPv4Address

Introduction

In this page you can find the example usage for com.google.common.net InetAddresses getCompatIPv4Address.

Prototype

public static Inet4Address getCompatIPv4Address(Inet6Address ip) 

Source Link

Document

Returns the IPv4 address embedded in an IPv4 compatible address.

Usage

From source file:org.n52.shetland.ogc.ows.service.OwsServiceRequestContext.java

private static IPAddress getIPAddress(HttpServletRequest req) {
    InetAddress addr = null;//from  ww w.  j a  v  a 2 s.c o  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;
}

From source file:org.n52.sos.request.RequestContext.java

private static IPAddress getIPAddress(HttpServletRequest req) {
    InetAddress addr = null;/*www  . ja  va  2s.  c o m*/
    try {
        addr = InetAddresses.forString(req.getRemoteAddr());
    } 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;
        if (InetAddresses.isCompatIPv4Address(inet6Address)) {
            return new IPAddress(InetAddresses.getCompatIPv4Address(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;
}