FileDocCategorySizeDatePackage
Inet6AddressImpl.javaAPI DocJava SE 6 API3143Tue Jun 10 00:25:40 BST 2008java.net

Inet6AddressImpl

public class Inet6AddressImpl extends Object implements InetAddressImpl

Fields Summary
private InetAddress
anyLocalAddress
private InetAddress
loopbackAddress
Constructors Summary
Methods Summary
public synchronized java.net.InetAddressanyLocalAddress()

        if (anyLocalAddress == null) {
            if (InetAddress.preferIPv6Address) {
                anyLocalAddress = new Inet6Address();
                anyLocalAddress.hostName = "::";
            } else {
                anyLocalAddress = (new Inet4AddressImpl()).anyLocalAddress();
            }
        }
        return anyLocalAddress;
    
public native java.lang.StringgetHostByAddr(byte[] addr)

public native java.lang.StringgetLocalHostName()

public booleanisReachable(java.net.InetAddress addr, int timeout, java.net.NetworkInterface netif, int ttl)

	byte[] ifaddr = null;
	int scope = -1;
	int netif_scope = -1;
	if (netif != null) {
	    /*
	     * Let's make sure we bind to an address of the proper family.
	     * Which means same family as addr because at this point it could
	     * be either an IPv6 address or an IPv4 address (case of a dual
	     * stack system).
	     */
	    java.util.Enumeration it = netif.getInetAddresses();
	    InetAddress inetaddr = null;
	    while (it.hasMoreElements()) {
		inetaddr = (InetAddress) it.nextElement();
		if (inetaddr.getClass().isInstance(addr)) {
		    ifaddr = inetaddr.getAddress();
		    if (inetaddr instanceof Inet6Address) {
			netif_scope = ((Inet6Address) inetaddr).getScopeId();
		    }
		    break;
		}
	    }
	    if (ifaddr == null) {
		// Interface doesn't support the address family of 
		// the destination
		return false;
	    }
	}
	if (addr instanceof Inet6Address)
	    scope = ((Inet6Address) addr).getScopeId();
	return isReachable0(addr.getAddress(), scope, timeout, ifaddr, ttl, netif_scope);
    
private native booleanisReachable0(byte[] addr, int scope, int timeout, byte[] inf, int ttl, int if_scope)

public native java.net.InetAddress[]lookupAllHostAddr(java.lang.String hostname)

public synchronized java.net.InetAddressloopbackAddress()

        if (loopbackAddress == null) {
             if (InetAddress.preferIPv6Address) {
                 byte[] loopback = 
			{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01};
                 loopbackAddress = new Inet6Address("localhost", loopback);
             } else {
                loopbackAddress = (new Inet4AddressImpl()).loopbackAddress();
             }
        }
        return loopbackAddress;