首页 > 解决方案 > 检查用户输入的 ipv4 格式是否正确

问题描述

我第一次来这里,有一个问题请教:

我想检查用户在输入 ipv4 时是否输入如果不是 ipv4 用户应该收到 3 次错误然后退出。我的示例代码如下:

    # Hosts and Commands
    for attempt in range(3):
        host = input("Enter IPs separated by SPACE: ")
        cmd = input("Enter Command(s) seperated by ',' : ")
        if(len(host) != 0) and (len(cmd) != 0):
            break
        print("Fields Cannot be Blank, try again...")
    else:
        Screen().input("Sorry...Execution Terminated, Press [ENTER] to Exit")
        return

标签: python-3.xnetmiko

解决方案


def validateIP(s):
    if not s: return False
    try:
        parts = [int(p) for p in s.split('.')]
    except:
        return False

    if len(parts) != 4: return False
    for part in parts:
        if not(0 <= part <= 255):
            return False
    return True


max_attempts = 3
for remaining in range(max_attempts-1, -1, -1):
    ip = input("Enter an IPv4 address: ")
    if validateIP(ip.strip()): break
    print("That is an invalid IPv4 address. You have", remaining, "attempts left")

推荐阅读