Clase Java.net.Inet6Address en Java

Esta clase representa la dirección IPv6 y amplía la clase InetAddress. Los métodos de esta clase brindan la posibilidad de representar e interpretar direcciones IPv6.
Los métodos de esta clase toman entrada en los siguientes formatos:

  1. x:x:x:x:x:x:x:x: esta es la forma general de la dirección IPv6 donde cada x se puede reemplazar con un valor hexadecimal de 16 bits de la dirección. Tenga en cuenta que debe haber un valor en lugar de cada ‘x’ al usar este formato. Por ejemplo,
    4B0C:0:0:0:880C:99A8:4B0:4411
  2. Cuando la dirección contiene un conjunto múltiple de 8 bits como ‘0’, se puede usar un formato especial para comprimir la dirección. En tales casos, ‘::’ se reemplaza en lugar de 0 para acortar la dirección. Por ejemplo, la dirección en el ejemplo anterior se puede escribir como-
    4B0C::880C:99A8:4B0:4411
  3. x:x:x:x:x:x:dddd: se utiliza un tercer formato cuando se debe cuidar el direccionamiento híbrido (IPv6 + IPv4). En tales casos, los primeros 12 bytes se utilizan para el direccionamiento IPv6 y los 4 bytes restantes se utilizan para el direccionamiento IPv4. Por ejemplo,
    F334::40CB:152.16.24.142
  4. ::FFFF:dddd: este tipo de direccionamiento se conoce como direccionamiento mapeado IPv4 . Se utiliza para ayudar en la implementación del direccionamiento IPv6. Permite el uso de la misma estructura y socket para comunicarse a través de la red conectada IPv6 e IPv4. Los primeros 80 bits se rellenan con 0 representados por ‘::’. Los siguientes 32 bits son todos ‘1’ y los 32 bits restantes representan la dirección IPv4. Por ejemplo,
    ::FFFF:152.16.24.123

Métodos :

  1. getByAddress(String host, byte[] addr, int scope_id) : se usa para crear un objeto Inet6Address configurando una identificación de alcance de IPv6 en el valor dado. El objeto devuelto es similar al creado por InetAddress.getByAddress(String, byte[]) con información adicional sobre la identificación del alcance.
    Syntax :public static Inet6Address getByAddress(String host,
                            byte[] addr,
                            int scope_id)
                                     throws UnknownHostException
    Parameters :
    host : host
    addr : raw ip address in network order
    scope_id : scope id of the address
    Throws :
    UnknownHostException : if IP address is of illegal length
  2. getByAddress(String host, byte[] addr, NetworkInterface nif): se puede usar un método sobrecargado getByAddress() para especificar la interfaz de red que se usará con la dirección. En este caso, la identificación del alcance correspondiente a la interfaz de red se utiliza como identificación del alcance.
    Syntax :public static Inet6Address getByAddress(String host,
                            byte[] addr,
                            NetworkInterface nif)
                                     throws UnknownHostException
    Parameters :
    host : host
    addr : raw ip address in network order
    nif : network interface to be associated with this address
    Throws :
    UnknownHostException : if IP address is of illegal length
  3. getScopeId() : Devuelve el identificador de alcance asociado con esta dirección o 0 si no se establece ninguno.
    Syntax : public int getScopeId()
  4. getScopedInterface() : Devuelve la interfaz de red asociada con esta dirección o nula si no se establece ninguna.
    Syntax : public NetworkInterface getScopedInterface()
  5. getAddress() : devuelve la dirección IP sin procesar de este objeto InetAddress como una array. El orden en que aparecen los bytes en la array es el mismo que en la dirección IP, es decir, getAddress[0] contendrá el byte de mayor orden.
    Syntax : public byte[] getAddress()
  6. getHostAddress() : devuelve la dirección IP en forma de texto.
    Syntax :public String getHostAddress()
  7. isAnyLocalAddress() : devuelve verdadero si esta dirección representa una dirección local.
    Syntax :public boolean isAnyLocalAddress()
  8. isLinkLocalAddress() : devuelve verdadero si esta dirección es una dirección local de enlace.
    Syntax :public boolean isLinkLocalAddress()
  9. isLoopbackAddress() : devuelve verdadero si esta dirección es una dirección de bucle invertido.
    Syntax :public boolean isLoopbackAddress()
  10. isMCGlobal() : devuelve verdadero si esta dirección de multidifusión tiene alcance global.
    Syntax :public boolean isMCGloabal()
  11. isMCLinkLocal() : devuelve verdadero si esta dirección de multidifusión tiene alcance de enlace.
    Syntax :public boolean isMCLinkLocal()
  12. isMCNodeLocal() : devuelve verdadero si esta dirección de multidifusión tiene alcance de Node.
    Syntax :public boolean isMCNodeLocal()
  13. isMCOrgLocal() : devuelve verdadero si esta dirección de multidifusión tiene alcance de organización.
    Syntax :public boolean isMCOrgLoacal()
  14. isMCSiteLocal() : devuelve verdadero si esta dirección de multidifusión tiene alcance de sitio.
    Syntax :public boolean isMCSiteLocal()
  15. isMulticastAddress() : devuelve verdadero si esta dirección es una dirección IP de multidifusión. Las direcciones de multidifusión tienen 1110 como sus primeros 4 bits.
    Syntax :public boolean isMulticastAddress()
  16. isSiteLocalAddress(): devuelve verdadero si esta dirección es una dirección local del sitio.
    Syntax :public boolean isSiteLocalAddress()()
  17. hashCode() : devuelve el código hash asociado con este objeto de dirección.
    Syntax : public int hashCode()
  18. equals() : devuelve verdadero si esta dirección IP es la misma que la del objeto especificado. El método Equals() no considera los nombres de host al comparar y solo considera la dirección IP asociada.
    Syntax : public boolean equals(Object obj)
    Parameters :
    obj : object to compare with

Implementación Java:

//Java program to illustrate various
//Inet6Address class methods
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays;
  
public class inet6add 
{
  
    public static void main(String[] args) throws UnknownHostException 
    {
  
        String host = "localhost";
        byte add[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
  
        //getByAddress() method
        Inet6Address ip1 = Inet6Address.getByAddress(host, add, 5);
        Inet6Address ip2 = Inet6Address.getByAddress(null, add, 6);
          
        // Following methods checks the property of the thus created object.
        // getscopeId() method
        System.out.println("Scope Id : " + ip1.getScopeId());
  
        // getScopedInterface() method
        System.out.println("Scoped Interface : " + ip1.getScopedInterface());
  
        // getAddress() method
        System.out.println("Address : " + Arrays.toString(ip1.getAddress()));
  
        // getHostAddress() method
        System.out.println("Host Address : " + ip1.getHostAddress());
  
        // isAnyLocalAddress() method
        System.out.println("isAnyLocalAddress : " + ip1.isAnyLocalAddress());
  
        // isLinkLocalAddress() method
        System.out.println("isLinkLocalAddress : " + ip1.isLinkLocalAddress());
  
        // isLoopbackAddress() method
        System.out.println("isLoopbackAddress : " + ip1.isLoopbackAddress());
  
        // isMCGlobal() method
        System.out.println("isMCGlobal : " + ip1.isMCGlobal());
  
        // isMCLinkLocal() method
        System.out.println("isMCLinkLocal : " + ip1.isMCLinkLocal());
  
        // isMCNodeLocal() method
        System.out.println("isMCNodeLocal : " + ip1.isMCNodeLocal());
  
        // isMCOrgLocal() method
        System.out.println("isMCOrgLocal : " + ip1.isMCOrgLocal());
  
        // isMCSiteLocal() method
        System.out.println("isMCSiteLocal : " + ip1.isMCSiteLocal());
  
        // isMulticastAddress() method
        System.out.println("isMulticastAddress : " + ip1.isMulticastAddress());
  
        // isSiteLocalAddress() method
        System.out.println("isSiteLocalAddress : " + ip1.isSiteLocalAddress());
  
        // hashCode() method
        System.out.println("hashCode : " + ip1.hashCode());
  
        // equals() method
        System.out.println("ip1==ip2 : " + ip1.equals(ip2));
  
    }
  
}

Producción :

Scope Id : 5
Scoped Interface : null
Address : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Host Address : 0:0:0:0:0:0:0:1%5
isAnyLocalAddress : false
isLinkLocalAddress : false
isLoopbackAddress : true
isMCGlobal : false
isMCLinkLocal : false
isMCNodeLocal : false
isMCOrgLocal : false
isMCSiteLocal : false
isMulticastAddress : false
isSiteLocalAddress : false
hashCode : 1
ip1==ip2 : true

Este artículo es una contribución de Rishabh Mahrsee . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *