Skip to content

关于windows下安装文件panel_update.py的修改建议(算是BUG吧) #309

@TIMhao

Description

@TIMhao

路径:/public/win/install下的panel_update.py
第69行domain = re.findall(r'://([^/:]+)', self.__cloud_url)[0],这个写法会排除host后面的端口号,假设我批量替换www.example.com为192.168.1.1:8080,_get_cloud_ip 方法使用正则提取了 IP(192.168.1.1),丢弃了端口号,导致在安装Windows版时报错:请求云端验证失败,响应: 400 Client Error: Bad Request for url: http://192.168.1.1/api/SetupCount;当前云端无法访问,可能未绑定api.bt.cn和www.bt.cn域名

所以建议改成:
def _get_cloud_ip(self):
# 原来的正则 re.findall(r'://([^/:]+)', ...) 遇到冒号就停止了,所以拿不到端口
# 我们改用更专业的解析方式:
try:
from urllib.parse import urlparse
result = urlparse(self.__cloud_url)
# result.netloc 会完整保留 "192.168.1.1:8080"
return result.netloc
except:
# 如果解析失败,回退到正则(支持带端口的正则)
import re
domain = re.findall(r'://([^/]+)', self.__cloud_url)[0]
return domain

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions