检查用户输入的 ipv4 格式是否正确



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

我想检查用户是否在输入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
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")

谢谢检查员G4dget!如果我只在数组中添加一个 IP,它工作正常,如果我键入超过 1 个以空格分隔的 IP 稍后在数组中捕获它不起作用。这个想法是接收尽可能多的ip,只要用户想要咨询,但用户不能输入无效的ipv4。

最新更新