fix #2264
This commit is contained in:
parent
947d0d6d4b
commit
03d6834471
@ -604,19 +604,29 @@ class StringUtils:
|
|||||||
def get_domain_address(address: str, prefix: bool = True) -> Tuple[Optional[str], Optional[int]]:
|
def get_domain_address(address: str, prefix: bool = True) -> Tuple[Optional[str], Optional[int]]:
|
||||||
"""
|
"""
|
||||||
从地址中获取域名和端口号
|
从地址中获取域名和端口号
|
||||||
|
:param address: 地址
|
||||||
|
:param prefix:返回域名是否要包含协议前缀
|
||||||
"""
|
"""
|
||||||
if not address:
|
if not address:
|
||||||
return None, None
|
return None, None
|
||||||
if prefix and not address.startswith("http"):
|
if prefix and not address.startswith("http"):
|
||||||
|
# 如果需要包含协议前缀,但地址不包含协议前缀,则添加
|
||||||
address = "http://" + address
|
address = "http://" + address
|
||||||
|
elif not prefix and address.startswith("http"):
|
||||||
|
# 如果不需要包含协议前缀,但地址包含协议前缀,则去掉
|
||||||
|
address = address.split("://")[-1]
|
||||||
|
# 去掉末尾的/
|
||||||
|
address = address.rstrip("/")
|
||||||
|
# 拆分域名和端口号
|
||||||
parts = address.split(":")
|
parts = address.split(":")
|
||||||
if len(parts) > 3:
|
if len(parts) > 3:
|
||||||
# 处理不希望包含多个冒号的情况(除了协议后的冒号)
|
# 处理不希望包含多个冒号的情况(除了协议后的冒号)
|
||||||
return None, None
|
return None, None
|
||||||
|
# 不含端口地址
|
||||||
domain = ":".join(parts[:-1])
|
domain = ":".join(parts[:-1])
|
||||||
if domain.endswith("/"):
|
if domain.endswith("/"):
|
||||||
domain = domain[:-1]
|
domain = domain[:-1]
|
||||||
# 检查是否包含端口号
|
# 端口号
|
||||||
try:
|
try:
|
||||||
port = int(parts[-1])
|
port = int(parts[-1])
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user