我正在编写一个简单的客户端和服务器,并希望引入一些简单的边界检查以确保用户输入的IP地址格式正确,即(int.int.int.int),是否有人提出任何建议这可以在我的代码接受该值时完成,并且如果它无效则会抛出操作系统错误。但我想阻止用户在这里输入任何内容。
def ipEntered():
global ipEntered
ipEntered = input("Please enter the ip address of the server you wish to connect with:")
由于
答案 0 :(得分:2)
使用ipaddress
module(Python 3.3中引入):
import ipaddress
def ipEntered():
while True:
try:
val = input("Please enter the ip address of the server you wish to connect with:")
return ipaddress.ip_address(val)
except ValueError:
print("Not a valid IP address")
,它将接受"100.200.30.40"
格式的IPv4地址,例如一个虚线的四边形和IPv6地址,以长手形式(由:
分隔的8组4个十六进制字符)和简写形式。
如果您只想接受IPv4地址,请改用return ipaddress.IPv4Address(val)
。