1 Star 0 Fork 0

MATWRK / subfinder

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
utils.go 1.95 KB
一键复制 编辑 原始数据 按行查看 历史
Ice3man543 提交于 2020-01-10 15:38 . Fix nW flag output format issue
package runner
import (
"bufio"
"io"
"strings"
jsoniter "github.com/json-iterator/go"
)
// JSONResult contains the result for a host in JSON format
type JSONResult struct {
Host string `json:"host"`
IP string `json:"ip"`
}
// WriteHostOutput writes the output list of subdomain to an io.Writer
func WriteHostOutput(results map[string]struct{}, writer io.Writer) error {
bufwriter := bufio.NewWriter(writer)
sb := &strings.Builder{}
for host := range results {
sb.WriteString(host)
sb.WriteString("\n")
_, err := bufwriter.WriteString(sb.String())
if err != nil {
bufwriter.Flush()
return err
}
sb.Reset()
}
return bufwriter.Flush()
}
// WriteHostOutputNoWildcard writes the output list of subdomain with nW flag to an io.Writer
func WriteHostOutputNoWildcard(results map[string]string, writer io.Writer) error {
bufwriter := bufio.NewWriter(writer)
sb := &strings.Builder{}
for host := range results {
sb.WriteString(host)
sb.WriteString("\n")
_, err := bufwriter.WriteString(sb.String())
if err != nil {
bufwriter.Flush()
return err
}
sb.Reset()
}
return bufwriter.Flush()
}
// WriteJSONOutput writes the output list of subdomain in JSON to an io.Writer
func WriteJSONOutput(results map[string]string, writer io.Writer) error {
encoder := jsoniter.NewEncoder(writer)
data := JSONResult{}
for host, ip := range results {
data.Host = host
data.IP = ip
err := encoder.Encode(&data)
if err != nil {
return err
}
}
return nil
}
// WriteHostIPOutput writes the output list of subdomain to an io.Writer
func WriteHostIPOutput(results map[string]string, writer io.Writer) error {
bufwriter := bufio.NewWriter(writer)
sb := &strings.Builder{}
for host, ip := range results {
sb.WriteString(host)
sb.WriteString(",")
sb.WriteString(ip)
sb.WriteString("\n")
_, err := bufwriter.WriteString(sb.String())
if err != nil {
bufwriter.Flush()
return err
}
sb.Reset()
}
return bufwriter.Flush()
}
1
https://gitee.com/mrturn_1/subfinder.git
git@gitee.com:mrturn_1/subfinder.git
mrturn_1
subfinder
subfinder
v2.3.2

搜索帮助