Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Kiểm tra địa chỉ IPv4 hợp lệ

    Trong quản trị an ninh mạng, việc lọc log hoặc luật tường lửa thường yêu cầu kiểm tra một chuỗi ký tự có phải là địa chỉ IPv4 hợp lệ hay không trước khi xử lý tiếp.

    Một chuỗi sss được coi là địa chỉ IPv4 hợp lệ (dạng thập phân có dấu chấm - dotted-decimal) nếu thoả mãn đồng thời:

    • Gồm đúng 4 nhóm ký tự số, phân tách bởi dấu chấm . (ví dụ 192.168.1.1).
    • Mỗi nhóm chỉ gồm các chữ số 0-9 (không có dấu +, -, khoảng trắng, chữ cái...).
    • Mỗi nhóm biểu diễn một số nguyên trong đoạn [0,255][0, 255][0,255].
    • Không có số 0 dư ở đầu nhóm, trừ khi bản thân nhóm đó chính là "0". Nói cách khác "0" hợp lệ nhưng "00", "01", "010" đều không hợp lệ.

    Với mỗi chuỗi cho trước, hãy xác định đó có phải địa chỉ IPv4 hợp lệ hay không.

    Ví dụ:

    Input:

    5
    192.168.1.1
    256.100.50.1
    192.168.01.1
    0.0.0.0
    255.255.255.255
    

    Output:

    VALID
    INVALID
    INVALID
    VALID
    VALID
    

    (256.100.50.1 sai vì 256 > 255; 192.168.01.1 sai vì nhóm 01 có số 0 dư ở đầu.)

    • Định dạng đầu vào:

      Dòng đầu tiên chứa số nguyên nnn (1≤n≤10001 \le n \le 10001≤n≤1000) — số lượng chuỗi cần kiểm tra.

      nnn dòng tiếp theo, mỗi dòng là một chuỗi sss (có thể rỗng, độ dài không quá 50 ký tự, không chứa khoảng trắng ở đầu/cuối có ý nghĩa — nếu có sẽ được loại bỏ trước khi kiểm tra).

    • Định dạng đầu ra:

      In ra nnn dòng. Dòng thứ iii in VALID nếu chuỗi thứ iii là địa chỉ IPv4 hợp lệ, ngược lại in INVALID.

    Ví dụ:

    Đầu vào:

    5
    192.168.1.1
    256.100.50.1
    192.168.01.1
    0.0.0.0
    255.255.255.255
    

    Đầu ra:

    VALID
    INVALID
    INVALID
    VALID
    VALID
    

    Đầu vào:

    6
    127.0.0.1
    1.2.3.4
    10.20.30.400
    010.0.0.1
    1.1.1
    1.2.3.4.5
    

    Đầu ra:

    VALID
    VALID
    INVALID
    INVALID
    INVALID
    INVALID
    

    Đang tải editor...