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

Chương trình Python tạo tất cả địa chỉ IP hợp lệ từ chuỗi cho trước


Cho một chuỗi chỉ chứa chữ số. Nhiệm vụ kiểm tra tất cả tổ hợp địa chỉ IP hợp lệ.

Đầu tiên kiểm tra độ dài chuỗi rồi tách bằng ".". Sau đó kiểm tra các tổ hợp khác nhau của ".".

Ví dụ

Input: "255011123222" It's not a valid IP address.
Input: 255011345890 Valid IP address is 255.011.123.222

Thuật toán

Bước 1: Kiểm tra độ dài chuỗi.
Bước 2: Tách chuỗi bằng ".". Đặt 3 dấu chấm trong chuỗi. W, X, Y, Z là số 0-255, không được có tiền tố 0 trừ khi là 0.
Bước 3: Tạo các tổ hợp khác nhau.
Bước 4: Kiểm tra tính hợp lệ của tổ hợp.

Ví dụ mã

# Mã Python kiểm tra IP hợp lệ có thể
# Hàm kiểm tra chữ số IP có hợp lệ
def ipvalid(ip):
    # Tách bằng "."
    ip = ip.split(".")
    # Kiểm tra corner cases
    for i in ip:
        if len(i) > 3 or int(i) < 0 or int(i) > 255:
            return False
        if len(i) > 1 and int(i) == 0:
            return False
        if len(i) > 1 and int(i) != 0 and i[0] == '0':
            return False
    return True

# Hàm chuyển chuỗi thành IP
def ipconvert(A):
    con = len(A)
    # Kiểm tra kích thước chuỗi
    if con > 12:
        return []
    newip = A
    l = []
    # Tạo các tổ hợp khác nhau
    for i in range(1, con - 2):
        for j in range(i + 1, con - 1):
            for k in range(j + 1, con):
                newip = newip[:k] + "." + newip[k:]
                newip = newip[:j] + "." + newip[j:]
                newip = newip[:i] + "." + newip[i:]
                # Kiểm tra tính hợp lệ
                if ipvalid(newip):
                    l.append(newip)
                newip = A
    return l

# Driver code
A = input("Enter IP address")
print(ipconvert(A))

Kết quả

Enter IP address25525522134
['255.255.22.134', '255.255.221.34']