Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java chuyển đổi mảng Byte sang địa chỉ IP


Cho một mảng Byte, nhiệm vụ là chuyển đổi nó thành địa chỉ IP bằng lớp InetAddress trong Java và hiển thị kết quả.

Mảng Byte là gì?

Một byte bao gồm 8 bit và mảng byte bao gồm các byte liền kề lưu trữ thông tin nhị phân. Trong Java, byte là kiểu dữ liệu nguyên thủy hiểu như byte của máy tính, tức là 8 bit và có thể giữ giá trị từ -128 đến 127.

Khai báo byte – byte ten_bien = gia_tri_khoi_tao;

Khai báo mảng byte – byte[] ten_mang = new byte[];

Lớp InetAddress là gì?

Trong Java, lớp InetAddress (trong gói java.net) được dùng để biểu diễn địa chỉ IP. Nó không có constructor công khai, mà sử dụng các phương thức static như getByAddress(byte[]).

Cú pháp

InetAddress diaChi = InetAddress.getByAddress(byte[])

Ví dụ

Input: 171, 32, 101, 11
Output: 171.32.101.11
Input: 172, 31, 102, 14
Output: 172.31.102.14

Cách tiếp cận trong chương trình dưới đây:

  • Import gói java.net
  • Nhập các số dưới dạng byte trong mảng byte
  • Tạo đối tượng InetAddress bằng phương thức getByAddress(byte[])
  • Sử dụng phương thức getHostAddress() để chuyển địa chỉ thành biểu diễn chuỗi
  • In kết quả

THUẬT TOÁN

START
Bước 1: Khai báo lớp Convert
    public class Convert
    Gọi public static void main()
        Tạo InetAddress addr = InetAddress.getByAddress(new byte[] { 171, 32, 101, 11 })
        Gọi System.out.println(addr.getHostAddress())
    Kết thúc
Kết thúc
STOP

Ví dụ hoàn chỉnh

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Convert {
    public static void main(String[] args) {
        try {
            byte[] ipBytes = { 171, 32, 101, 11 };
            InetAddress addr = InetAddress.getByAddress(ipBytes);
            System.out.println(addr.getHostAddress());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

Kết quả

171.32.101.11

Lưu ý: Bài gốc sử dụng C# (System.Net.IPAddress), ở đây đã chuyển sang Java chuẩn với java.net.InetAddress.