fix: URL解析自动补全协议头

-uf 文件中 192.168.1.1:8080 自动转为 http://192.168.1.1:8080
This commit is contained in:
ZacharyZcR
2026-01-19 14:52:06 +08:00
parent 411467dd93
commit af3c6a932e
+19 -4
View File
@@ -313,8 +313,9 @@ func (tp *TargetParser) parseURLs(input *TargetInput) ([]string, []error, []stri
for _, rawURL := range urlList {
rawURL = strings.TrimSpace(rawURL)
if rawURL != "" {
if valid, err := tp.validateURL(rawURL); valid {
urls = append(urls, rawURL)
normalizedURL := tp.normalizeURL(rawURL)
if valid, err := tp.validateURL(normalizedURL); valid {
urls = append(urls, normalizedURL)
} else {
warnings = append(warnings, fmt.Sprintf("无效URL: %s - %s", rawURL, err.Error()))
}
@@ -329,8 +330,9 @@ func (tp *TargetParser) parseURLs(input *TargetInput) ([]string, []error, []stri
errors = append(errors, NewParseError(ErrorTypeFileError, "读取URL文件失败", input.URLsFile, 0, err))
} else {
for i, line := range fileResult.Lines {
if valid, err := tp.validateURL(line); valid {
urls = append(urls, line)
normalizedURL := tp.normalizeURL(line)
if valid, err := tp.validateURL(normalizedURL); valid {
urls = append(urls, normalizedURL)
} else {
warnings = append(warnings, fmt.Sprintf("URL文件第%d行无效: %s", i+1, err.Error()))
}
@@ -344,6 +346,19 @@ func (tp *TargetParser) parseURLs(input *TargetInput) ([]string, []error, []stri
return urls, errors, warnings
}
// normalizeURL 规范化URL,自动补全协议头
func (tp *TargetParser) normalizeURL(rawURL string) string {
rawURL = strings.TrimSpace(rawURL)
if rawURL == "" {
return rawURL
}
// 如果没有协议头,自动添加 http://
if !strings.HasPrefix(rawURL, "http://") && !strings.HasPrefix(rawURL, "https://") {
return "http://" + rawURL
}
return rawURL
}
// parsePorts 解析端口
func (tp *TargetParser) parsePorts(input *TargetInput) ([]int, []error, []string) {
var ports []int