Python指定IP格式作为输入

时间:2013-03-20 15:25:14

标签: python input python-3.x ip-address

我正在编写一个简单的客户端和服务器,并希望引入一些简单的边界检查以确保用户输入的IP地址格式正确,即(int.int.int.int),是否有人提出任何建议这可以在我的代码接受该值时完成,并且如果它无效则会抛出操作系统错误。但我想阻止用户在这里输入任何内容。

 def ipEntered():
          global ipEntered
          ipEntered = input("Please enter the ip address of the server you wish to connect with:")

由于

1 个答案:

答案 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)