-hf ip.txt,遇到解析失败后进行跳过,代替原有的退出

This commit is contained in:
影舞者 2021-10-11 17:58:26 +08:00
parent dc267a5335
commit 5f981089a1
2 changed files with 18 additions and 7 deletions

View File

@ -149,10 +149,15 @@ func ParseScantype(Info *HostInfo) {
} }
} }
func CheckErr(text string, err error) { func CheckErr(text string, err error, flag bool) {
if err != nil { if err != nil {
fmt.Println(text, err.Error()) fmt.Println("Parse", text, "error: ", err.Error())
os.Exit(0) if flag {
if err != ParseIPErr {
fmt.Println(ParseIPErr)
}
os.Exit(0)
}
} }
} }

View File

@ -24,7 +24,7 @@ var ParseIPErr = errors.New(" host parsing error\n" +
func ParseIP(ip string, filename string, nohost string) (hosts []string, err error) { func ParseIP(ip string, filename string, nohost string) (hosts []string, err error) {
if ip != "" { if ip != "" {
hosts = ParseIPs(ip) hosts = ParseIPs(ip, true)
} }
if filename != "" { if filename != "" {
var filehost []string var filehost []string
@ -33,7 +33,7 @@ func ParseIP(ip string, filename string, nohost string) (hosts []string, err err
} }
if nohost != "" { if nohost != "" {
nohosts := ParseIPs(nohost) nohosts := ParseIPs(nohost, true)
if len(nohosts) > 0 { if len(nohosts) > 0 {
temp := map[string]struct{}{} temp := map[string]struct{}{}
for _, host := range hosts { for _, host := range hosts {
@ -56,19 +56,25 @@ func ParseIP(ip string, filename string, nohost string) (hosts []string, err err
return hosts, err return hosts, err
} }
func ParseIPs(ip string) (hosts []string) { func ParseIPs(ip string, flag ...bool) (hosts []string) {
var err error var err error
var flag1 bool
if len(flag) > 0 {
flag1 = flag[0]
}
if strings.Contains(ip, ",") { if strings.Contains(ip, ",") {
IPList := strings.Split(ip, ",") IPList := strings.Split(ip, ",")
var ips []string var ips []string
for _, ip := range IPList { for _, ip := range IPList {
ips, err = ParseIPone(ip) ips, err = ParseIPone(ip)
CheckErr(ip, err, flag1)
hosts = append(hosts, ips...) hosts = append(hosts, ips...)
} }
} else { } else {
hosts, err = ParseIPone(ip) hosts, err = ParseIPone(ip)
} }
CheckErr(ip, err)
CheckErr(ip, err, flag1)
return hosts return hosts
} }