def __init__(self, status, atyp, addr, port):
if status not in RESP_STATUS.values():
raise ValueError("Unsupported status code {}".format(status))
if atyp not in ADDR_TYPE.values():
raise ValueError("Unsupported address type {}".format(atyp))
if atyp == ADDR_TYPE["IPV4"]:
try:
addr = ipaddress.IPv4Address(addr)
except ipaddress.AddressValueError:
raise ValueError("Invalid ipaddress format for IPv4")
elif atyp == ADDR_TYPE["IPV6"]:
try:
addr = ipaddress.IPv6Address(addr)
except ipaddress.AddressValueError:
raise ValueError("Invalid ipaddress format for IPv6")
elif atyp == ADDR_TYPE["DOMAINNAME"] and not isinstance(addr, string_func):
raise ValueError("Domain name expect to be unicode string")
self.status = status
self.atyp = atyp
self.addr = addr
self.port = port
评论列表
文章目录