2a9cfd0b

Исходные тексты приложения InetAddressDemo


Исходные тексты приложения InetAddressDemo приведены в листинге 3.1.

Листинг 3.1. Файл InetAddressDemo\InetAddressDemo.java

// =========================================================

// Работа с адресами IP с помощью класса InetAddress

//

// (C) Фролов А.В, 1997

//

// E-mail: frolov@glas.apc.org

// WWW:    http://www.glasnet.ru/~frolov

//            или

//         http://www.dials.ccas.ru/frolov

// =========================================================

import java.net.*;

import java.io.*;

import java.util.*;

// =========================================================



// Класс InetAddressDemo

// Главный класс приложения

// =========================================================

public class InetAddressDemo

{

  // -------------------------------------------------------

  // main

  // Метод, получающий управление при запуске приложения

  // -------------------------------------------------------

  public static void main(String args[])

  {

    // Массив для ввода строки с клавиатуры

    byte bKbdInput[] = new byte[256];

    // Введенная строка

    String sIn;

    // Рабочая строка

    String str;

    // Адрес локального узла

    InetAddress iaLocal;

    // Массив байт адреса локального узла

    byte[] iaLocalIP;

    // Массив всех адресов удаленного узла

    InetAddress[] iaRemoteAll;

    try

    {

      // Получаем адрес локального узла

      iaLocal = InetAddress.getLocalHost();

      // Отображаем имя локального узла на консоли

      System.out.println("Local host name: " +

        iaLocal.getHostName());

      // Определяем адрес IP локального узла

      iaLocalIP = iaLocal.getAddress();

      // Отображаем отдельные байты адреса IP

      // локального узла

      System.out.println("Local host IP address: " +

        (0xff & (int)iaLocalIP[0]) + "." +

        (0xff & (int)iaLocalIP[1]) + "." +


        (0xff & (int)iaLocalIP[2]) + "." +

        (0xff & (int)iaLocalIP[3]));

      // Отображаем адрес IP локального узла, полученный

      // в виде текстовой строки

      System.out.println("Local host IP address: " +

        iaLocal.toString());

      // Вводим имя удаленного узла, адрес которого

      // мы будет определять

      System.out.println("Enter remote host name...");

      System.in.read(bKbdInput);

      sIn = new String(bKbdInput, 0);

      // Обрезаем строку, удаляя символ конца строки

      StringTokenizer st;

      st  = new StringTokenizer(sIn, "\r\n");

      str = new String((String)st.nextElement());

      // Получаем все адреса IP, свяжанные с удаленным

      // узлом, имя которого мы только что ввели

      iaRemoteAll = InetAddress.getAllByName(str);

      // Отображаем эти адреса на консоли

      for(int i = 0; i < iaRemoteAll.length; i++)

      {

        System.out.println("Remote host IP address: " +

          iaRemoteAll[i].toString());

      }

      System.out.println("Press <Enter> to terminate...");

      System.in.read(bKbdInput);

    }

    catch(Exception ioe)

    {

      System.out.println(ioe.toString());

    }

  }

}


Содержание раздела