You've already forked favicon-api-v3
25.09.05
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user