This commit is contained in:
jinql
2025-09-05 23:09:25 +08:00
parent 407c803550
commit d6696ff765
7 changed files with 24 additions and 60 deletions

View File

@@ -311,10 +311,10 @@ class Favicon:
Returns:
域名是否合法且非内网地址
"""
return _check_internal(domain) and _pattern_domain.match(domain)
return Favicon.check_internal(domain) and _pattern_domain.match(domain)
@staticmethod
def _check_internal(domain: str) -> bool:
def check_internal(domain: str) -> bool:
"""检查网址是否非内网地址
Args:
@@ -348,27 +348,4 @@ _pattern_domain = re.compile(
def _check_url(domain: str) -> Optional[Any]:
return _check_internal(domain) and _pattern_domain.match(domain)
def _check_internal(domain: str) -> bool:
"""
检查网址是否非内网地址
Args:
domain:
Returns: True 非内网False 是内网/无法解析
"""
try:
if domain.replace('.', '').isdigit():
return not ipaddress.ip_address(domain).is_private
else:
ips = socket.getaddrinfo(domain, None)
for ip_info in ips:
ip = ip_info[4][0]
if '.' in ip:
return not ipaddress.ip_address(ip).is_private
return True
except Exception as e:
print(f"解析网址出错: {e}")
return False
return Favicon.check_internal(domain) and _pattern_domain.match(domain)