Рубрики

Сеть в Java | Установите 1 (класс Java.net.InetAddress)

Этот класс представляет IP-адрес. Он представляет собой 32-битный адрес IPv4 и 128-битный адрес IPv6. Это суперкласс классов Inet6Address и Inet4Address. Экземпляр этого класса состоит из IP-адреса и обычно имени хоста в зависимости от того, было ли выполнено разрешение имени хоста во время создания.
Рекомендуемое чтение: IP-адресация | Вступление
Для этого класса нет конструкторов, но есть статические методы, которые возвращают экземпляры класса InetAddress для общего использования.

Методы:

  1. getAddress (): возвращает необработанный IP-адрес этого объекта InetAddress в виде массива. Порядок, в котором байты появляются в массиве, такой же, как и в IP-адресе, т.е. getAddress [0] будет содержать байт высшего порядка.
    Syntax : public byte[] getAddress()
  2. getHostAddress (): возвращает IP-адрес в текстовой форме.
    Syntax :public String getHostAddress()
  3. isAnyLocalAddress (): возвращает true, если этот адрес представляет локальный адрес.
    Syntax :public boolean isAnyLocalAddress()
  4. isLinkLocalAddress (): возвращает true, если этот адрес является локальным адресом ссылки.
    Syntax :public boolean isLinkLocalAddress()
  5. isLoopbackAddress (): возвращает true, если этот адрес является адресом обратной связи.
    Syntax :public boolean isLoopbackAddress()
  6. isMCGlobal (): возвращает true, если этот многоадресный адрес имеет глобальную область видимости.
    Syntax :public boolean isMCGloabal()
  7. isMCLinkLocal (): возвращает true, если этот многоадресный адрес имеет область действия ссылки.
    Syntax :public boolean isMCLinkLocal()
  8. isMCNodeLocal (): возвращает true, если этот многоадресный адрес имеет область видимости узла.
    Syntax :public boolean isMCNodeLocal()
  9. isMCOrgLocal (): возвращает true, если этот многоадресный адрес имеет область организации.
    Syntax :public boolean isMCOrgLoacal()
  10. isMCSiteLocal (): возвращает true, если этот многоадресный адрес имеет область сайта.
    Syntax :public boolean isMCSiteLocal()
  11. isMulticastAddress (): возвращает true, если этот адрес является IP-адресом многоадресной рассылки. Адреса многоадресной рассылки имеют 1110 в качестве первых 4 бит.
    Syntax :public boolean isMulticastAddress()
  12. isSiteLocalAddress (): возвращает true, если этот адрес является локальным адресом сайта.
    Syntax :public boolean isSiteLocalAddress()()
  13. hashCode (): возвращает хеш-код, связанный с этим объектом адреса.
    Syntax : public int hashCode()
  14. equals () : возвращает true, если этот IP-адрес совпадает с адресом указанного объекта. Метод equals () не учитывает имена хостов при сравнении и учитывает только связанный IP-адрес.
    Syntax : public boolean equals(Object obj)
    Parameters :
    obj : object to compare with
  15. // Java-программа для иллюстрации
    // Методы Inetaddress класса

    import java.net.Inet4Address;

    import java.net.InetAddress;

    import java.net.UnknownHostException;

    import java.util.Arrays;

      

    public class inetadd 

    {

      

        public static void main(String[] args) throws UnknownHostException 

            {

              

            String url = "www.geeksforgeeks.org";

            byte addr[]={127, 0, 0, 1};

            InetAddress ip1 =  Inet4Address.getByName(url);

            InetAddress ip2 =  InetAddress.getByAddress(addr);

              

            // Следующие методы проверяют свойство созданного таким образом объекта.

            // метод getAddress ()

            System.out.println("Address : " + Arrays.toString(ip1.getAddress()));

      

            // getHostAddress () метод

            System.out.println("Host Address : " + ip1.getHostAddress());

      

            // isAnyLocalAddress () метод

            System.out.println("isAnyLocalAddress : " + ip1.isAnyLocalAddress());

              

            // isLinkLocalAddress () метод

            System.out.println("isLinkLocalAddress : " + ip1.isLinkLocalAddress());

              

            // метод isLoopbackAddress ()

            System.out.println("isLoopbackAddress : " + ip1.isLoopbackAddress());

              

            // isMCGlobal () метод

            System.out.println("isMCGlobal : " + ip1.isMCGlobal());

              

            // isMCLinkLocal () метод

            System.out.println("isMCLinkLocal : " + ip1.isMCLinkLocal());

              

            // isMCNodeLocal () метод

            System.out.println("isMCNodeLocal : " + ip1.isMCNodeLocal());

              

            // isMCOrgLocal () метод

            System.out.println("isMCOrgLocal : " + ip1.isMCOrgLocal());

              

            // isMCSiteLocal () метод

            System.out.println("isMCSiteLocal : " + ip1.isMCSiteLocal());

              

            // isMulticastAddress () метод

            System.out.println("isMulticastAddress : " + ip1.isMulticastAddress());

      

            // isSiteLocalAddress () метод

            System.out.println("isSiteLocalAddress : " + ip1.isSiteLocalAddress());

      

            // метод hashCode ()

            System.out.println("hashCode : " + ip1.hashCode());

              

            // метод equals ()

            System.out.println("ip1==ip2 : " + ip1.equals(ip2));

        }

      
    }

    Выход :

    Address : [52, 84, 102, 90]
    Host Address : 52.84.102.90
    isAnyLocalAddress : false
    isLinkLocalAddress : false
    isLoopbackAddress : false
    isMCGlobal : false
    isMCLinkLocal : false
    isMCNodeLocal : false
    isMCOrgLocal : false
    isMCSiteLocal : false
    isMulticastAddress : false
    isSiteLocalAddress : false
    hashCode : 877946458
    ip1==ip2 : false
    
  16. isReachable (): возвращает true, если этот адрес достижим. Эхо-запросы ICMP используются, если разрешение может быть предоставлено, в противном случае хост пытается установить TCP-соединение через порт 7 пункта назначения. Этот метод обычно используется в качестве предварительного условия в различных программах, чтобы избежать исключений Host Unreachable в будущем.
    Syntax :public boolean isReachable(int timeout)
                        throws IOException
    Parameters :
    timeout : time after which the call aborts, resulting in false value.
    Throws :
    IOException : if network error occurs
    

    Другой перегруженный метод isReachable () указывает сетевой интерфейс, который будет использоваться при проверке достижимости, а параметр ttl указывает количество прыжков, которые делает эхо-пакет перед выходом из сети.

  17. Syntax :public boolean isReachable(NetworkInterface netif,
                      int ttl,
                      int timeout)
                        throws IOException
    Parameters :
    netif : Network interface to use
    ttl : time to live in milliseconds
    timeout : time after which the call aborts, resulting in false value.
    Throws :
    IOException : if network error occurs
    
  18. getHostName (): возвращает имя хоста для этого IP-адреса. Если этот объект был создан с именем хоста, чем он возвращается, в противном случае выполняется обратный поиск, чтобы вернуть настроенное системой имя хоста.
    Syntax :public String getHostName()
  19. getCanonicalHostName (): возвращает полное доменное имя для этого объекта. Если этот объект был создан с именем хоста, чем он возвращается, в противном случае выполняется обратный поиск, чтобы вернуть настроенное системой имя хоста.
    Syntax :public String getCanonicalHostName()
  20. toString (): преобразует IP-адрес в строку. Возвращает результат в виде имени хоста / IP-адреса.
    Syntax :public String toString()
  21. getByAddress (): один из статических методов для создания объекта InetAddress. Он принимает имя хоста и IP-адрес в качестве параметра. Имя хоста может быть именем машины, как в «www.geeksforgeeks.org», или его текстовым IP-адресом.
    Syntax : public static InetAddress getByAddress(String host,
                           byte[] addr)
                                    throws UnknownHostException
    Parameters :
    host : hostname
    addr : byte address for this object
    Throws :
    UnknownHostException : if IP address is of illegal length

    Другой перегруженный метод, который принимает только байтовый адрес и не использует имя хоста. Он возвращает объект InetAddress только с этим необработанным IP-адресом.

  22. Syntax : public static InetAddress getByAddress(byte[] addr)
                                    throws UnknownHostException
    Parameters :
    host : hostname
    addr : byte address for this object
    Throws :
    UnknownHostException : if IP address is of illegal length
  23. getByName (): возвращает IP-адрес указанного хоста. Если хост является буквальным IP-адресом, то проверяется только его действительность.
    Syntax :public static InetAddress getByName(String host)
    Parameters :
    host : host name
  24. getAllByName (): возвращает массив IP-адресов для данного хоста.
    Syntax :public static InetAddress[] getAllByName(String host)
    Parameters :
    host : host name
  25. getLoopbackAddress (): возвращает адрес обратной петли.
    Syntax :public static InetAddress getLoopbackAddress()
    
  26. getLocalHost (): возвращает IP-адрес локального хоста.
    Syntax :public static InetAddress getLocalHost()
                                    throws UnknownHostException
    Throws :
    UnknownHostException : If local host cannot be resolved into an address
    
  27. // Java-программа для иллюстрации
    // Методы Inetaddress класса

    import java.io.IOException;

    import java.net.InetAddress;

    import java.util.Arrays;

      

    public class inetadd2 

    {

        public static void main(String[] args) throws IOException 

        {

          

      

            String url = "www.geeksforgeeks.org";

            byte addr[] = { 127, 0, 0, 1 };

      

            // метод getByName ()

            InetAddress ip1 = InetAddress.getByName(url);

            System.out.println("getByName() : " + ip1);

      

            // getByAddress () метод

            InetAddress ip2 = InetAddress.getByAddress(addr);

            System.out.println("getByAddress() : " + ip2);

      

            // getLocalHost () метод

            InetAddress ip3 = InetAddress.getLocalHost();

            System.out.println("getLocalHost() : " + ip3);

      

            // метод getLoopbackAddress ()

            InetAddress ip4 = InetAddress.getLoopbackAddress();

            System.out.println("getLoopbackAddress() : " + ip4);

      

            // метод getAllByName () - возвращает все ip-адреса

            // связано с google.com

            InetAddress addrs[] = InetAddress.getAllByName("www.google.com");

            System.out.println("Google ip addresses : " + Arrays.toString(addrs));

      

            // isReachable () метод

            boolean isreach = ip1.isReachable(50);

            System.out.println("ip1 isReachable() : " + isreach);

      

            // метод getHostname ()

            String hostname = ip1.getHostName();

            System.out.println("ip1 hostname :" + hostname);

      

            // метод getCanonicalHostname ()

            System.out.println("ip1 CanonicalHostname : " + ip1.getCanonicalHostName());

      

            // метод toString ()

            System.out.println("ip1 toString() : " + ip1.toString());

        }

    }

    Выход :

    getByName() : www.geeksforgeeks.org/52.84.102.90
    getByAddress() : /127.0.0.1
    getLocalHost() : DESKTOP-K4GGDH6/192.168.1.5
    getLoopbackAddress() : localhost/127.0.0.1
    Google ip addresses : [www.google.com/216.58.199.132]
    ip1 isReachable() : false
    ip1 hostname :www.geeksforgeeks.org
    ip1 CanonicalHostname : server-52-84-102-90.del51.r.cloudfront.net
    ip1 toString() : www.geeksforgeeks.org/52.84.102.90
    
    

Следующая программа использует класс InetAddress для получения IP-адреса данного доменного имени. Когда программа запускается в системе, подключенной к Интернету, она дает IP-адрес (а) данного домена.

// Java-программа для демонстрации работы класса InetAddress
// Эта программа находит IP-адрес для доменного имени.

import java.net.*;

  

public class GetIPAddress

{

    public static void main(String args[]) throws Exception

    {

        String url = "www.google.com";

        try

        {

            // Получить IP-адреса, связанные с доменом

            InetAddress ips[] = InetAddress.getAllByName(url);

  

            // Отображение IP-адресов

            System.out.println("IP Address(es)");

            for (InetAddress addr:ips)

                System.out.println(addr.getHostAddress());

        }

        catch(Exception ex)

        {

            System.out.println("host not found");

        }

    }

}

Выход:

 IP-адрес (а)
172.217.4.68
2607: f8b0: 4006: 809: 0: 0: 0: 2004 

Ссылки :
Официальная документация Java

Эта статья предоставлена Ришабх Марси и Апарной Вадламани . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Сеть в Java | Установите 1 (класс Java.net.InetAddress)

0.00 (0%) 0 votes