Skip to content

Commit efdce4c

Browse files
committed
feat: add resolver file support
1 parent f4d14c4 commit efdce4c

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

cmd/screener/main.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ CONFIGURATIONS:
4545
-nr, --ignore-redirects do not follow redirects (Default: false)
4646
-p, --proxy HTTP/SOCKS5 proxy server (Example: 127.0.0.1:8080)
4747
-r, --resolvers custom DNS resolvers (comma separated) (Default: system resolvers)
48+
-rf, --resolver-file file containing DNS resolvers (one per line)
4849
-rce, --respect-cert-err respect certificate errors (Default: false)
4950
-to, --timeout screenshot timeout (Default: 15 seconds)
5051
-ua, --user-agent specify user agent (Default: Chrome UA)
@@ -185,7 +186,7 @@ func processTarget(worker func(string) error, concurrency int, targetChannel <-c
185186
}
186187
func (cli *cli) parseFlags() {
187188
var help, ver, debug bool
188-
var ignoreStatusCodes, customResolvers string
189+
var ignoreStatusCodes, customResolvers, resolverFile string
189190

190191
options := NewCLIOptions()
191192
captureOptions := screener.NewOptions()
@@ -209,6 +210,8 @@ func (cli *cli) parseFlags() {
209210
flag.StringVar(&ignoreStatusCodes, "isc", "", "")
210211
flag.StringVar(&customResolvers, "resolvers", "", "")
211212
flag.StringVar(&customResolvers, "r", "", "")
213+
flag.StringVar(&resolverFile, "resolver-file", "", "")
214+
flag.StringVar(&resolverFile, "rf", "", "")
212215

213216
flag.IntVar(&cli.CaptureOptions.CaptureHeight, "capture-height", captureOptions.CaptureHeight, "")
214217
flag.IntVar(&cli.CaptureOptions.CaptureHeight, "ch", captureOptions.CaptureHeight, "")
@@ -282,6 +285,20 @@ func (cli *cli) parseFlags() {
282285
}
283286
}
284287

288+
if resolverFile != "" {
289+
resolversFromFile, err := fileutil.ReadFile(resolverFile)
290+
if err != nil {
291+
log.Errorf("Error reading resolver file: %v", err)
292+
os.Exit(1)
293+
}
294+
for _, resolver := range resolversFromFile {
295+
resolver = strings.TrimSpace(resolver)
296+
if resolver != "" && !strings.HasPrefix(resolver, "#") {
297+
cli.CaptureOptions.CustomResolvers = append(cli.CaptureOptions.CustomResolvers, resolver)
298+
}
299+
}
300+
}
301+
285302
if customResolvers != "" {
286303
resolvers := strings.Split(customResolvers, ",")
287304
for _, resolver := range resolvers {

0 commit comments

Comments
 (0)