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.